Image 如何使Sobel边缘检测忽略NaN或0
我有一幅图像,其中一半的图像被NaN或零遮住(我可以选择哪一个或在这一半图像中放入任何其他值),我想对整个图像进行Sobel边缘检测,同时忽略从NaN/0过渡到实际图像形成的线。下面是我想对其进行边缘检测的图像示例: 我只会在图像的右侧进行边缘检测,但在我的项目的后面,我将有一个弯曲的形状,而不是一个漂亮的矩形,因此无论我如何裁剪,都会有一些NaN/0 当我现在进行边缘检测时,我得到: 基本上,我的问题归结为:我有没有办法去消除在中间发现的边缘,或者让索贝尔不知何故忽略这种转变? 我也困惑了为什么索贝尔在图像中间检测到线,而不是当我旋转图像时,边上产生的线导致边缘上的一些像素被填充0。我认为这是因为这些边缘没有连接到任何突出的边缘,但这对我帮助不大 任何帮助都将不胜感激Image 如何使Sobel边缘检测忽略NaN或0,image,matlab,image-processing,edge-detection,Image,Matlab,Image Processing,Edge Detection,我有一幅图像,其中一半的图像被NaN或零遮住(我可以选择哪一个或在这一半图像中放入任何其他值),我想对整个图像进行Sobel边缘检测,同时忽略从NaN/0过渡到实际图像形成的线。下面是我想对其进行边缘检测的图像示例: 我只会在图像的右侧进行边缘检测,但在我的项目的后面,我将有一个弯曲的形状,而不是一个漂亮的矩形,因此无论我如何裁剪,都会有一些NaN/0 当我现在进行边缘检测时,我得到: 基本上,我的问题归结为:我有没有办法去消除在中间发现的边缘,或者让索贝尔不知何故忽略这种转变? 我也困惑了
注意:是的,图像是果蝇的图像。您可以先裁剪图像,进行边缘过滤,然后用零填充结果。沿无效区域检测到的边缘将限制在3x3的邻域内。只需使用原始图像作为遮罩(放大)擦除这些像素。只需使用NaN,然后进行阈值处理,然后将NaN转换为二进制零。我不明白你的问题?你确定是索贝尔?看起来像是一个精明的边缘检测。@kosinix:你为什么这么说?