实施3d sobel运算符 [英] implement 3d sobel operator

查看:125
本文介绍了实施3d sobel运算符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在研究从包含体素的MRI数据量中去除不均匀性.我想在这些体积上应用sobel运算符以查找渐变.我熟悉2d sobel蒙版和2d图像的邻域.

I am currently working on inhomogeniety removal from MRI data volume which contains voxels. I want to apply sobel operator on those volumes to find the gradient. I am familiar with 2d sobel mask and the neighbourhood of 2d images.

面罩:1 2 10 0 0-1 -2 -11 0 -12 0 -21 0 -1

sobel mask: 1 2 1 0 0 0 -1 -2 -1 1 0 -1 2 0 -2 1 0 -1

(x,y)的邻域:(x + 1,y-1)(x + 1,y)(x + 1,y + 1)[x,y-1)(x,y)(x,y + 1)(x-1,y-1)(x-1,y)(x-1,y + 1)

neighbourhood of(x,y): (x+1,y-1) (x+1,y) (x+1,y+1) (x,y-1) (x,y) (x,y+1) (x-1,y-1) (x-1,y) (x-1,y+1)

现在,我想将其应用于3d.请建议我该如何进行??谢谢你.

Now I want to apply it on 3d. Please suggest me how should I proceed?? Thank you.

推荐答案

Wikipedia对此做了很好的介绍:http://en.wikipedia.org/wiki/Sobel_operator

Wikipedia has a nice introduction about that : http://en.wikipedia.org/wiki/Sobel_operator

基本上,由于sobel滤波器是可分离的,因此可以在x,y和z方向中的每个方向上连续应用一维滤波器.这些过滤器是Wikipedia上给出的h(x)和h'(x).这样做可以使您沿应用h'(x)的方向获得边缘.
例如,如果执行h(x)* h(y)* h'(z),则将获得沿z方向的边.

Basically, since the sobel filter is separable, you can apply 1D filters in each of x, y and z directions consecutively. Theses filters are h(x) and h'(x) as given on wikipedia. Doing so will allow you to get the edges in the direction where you applied h'(x).
For example, if you do h(x)*h(y)*h'(z), you'll get the edges in the direction z.

或者(更昂贵),您可以计算整个3D 3x3x3内核并将卷积应用于3D中.维基百科上也给出了z方向的内核.

Alternatively (and more expensively), you can compute the whole 3D 3x3x3 kernel and apply the convolution in 3D. The kernel for the z direction is given on wikipedia as well.

这篇关于实施3d sobel运算符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆