Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 如何使Sobel边缘检测忽略NaN或0_Image_Matlab_Image Processing_Edge Detection - Fatal编程技术网

Image 如何使Sobel边缘检测忽略NaN或0

Image 如何使Sobel边缘检测忽略NaN或0,image,matlab,image-processing,edge-detection,Image,Matlab,Image Processing,Edge Detection,我有一幅图像,其中一半的图像被NaN或零遮住(我可以选择哪一个或在这一半图像中放入任何其他值),我想对整个图像进行Sobel边缘检测,同时忽略从NaN/0过渡到实际图像形成的线。下面是我想对其进行边缘检测的图像示例: 我只会在图像的右侧进行边缘检测,但在我的项目的后面,我将有一个弯曲的形状,而不是一个漂亮的矩形,因此无论我如何裁剪,都会有一些NaN/0 当我现在进行边缘检测时,我得到: 基本上,我的问题归结为:我有没有办法去消除在中间发现的边缘,或者让索贝尔不知何故忽略这种转变? 我也困惑了

我有一幅图像,其中一半的图像被NaN或零遮住(我可以选择哪一个或在这一半图像中放入任何其他值),我想对整个图像进行Sobel边缘检测,同时忽略从NaN/0过渡到实际图像形成的线。下面是我想对其进行边缘检测的图像示例:

我只会在图像的右侧进行边缘检测,但在我的项目的后面,我将有一个弯曲的形状,而不是一个漂亮的矩形,因此无论我如何裁剪,都会有一些NaN/0

当我现在进行边缘检测时,我得到:

基本上,我的问题归结为:我有没有办法去消除在中间发现的边缘,或者让索贝尔不知何故忽略这种转变?

我也困惑了为什么索贝尔在图像中间检测到线,而不是当我旋转图像时,边上产生的线导致边缘上的一些像素被填充0。我认为这是因为这些边缘没有连接到任何突出的边缘,但这对我帮助不大

任何帮助都将不胜感激


注意:是的,图像是果蝇的图像。

您可以先裁剪图像,进行边缘过滤,然后用零填充结果。

沿无效区域检测到的边缘将限制在3x3的邻域内。只需使用原始图像作为遮罩(放大)擦除这些像素。

只需使用NaN,然后进行阈值处理,然后将NaN转换为二进制零。我不明白你的问题?你确定是索贝尔?看起来像是一个精明的边缘检测。@kosinix:你为什么这么说?