image - 如何使用MATLAB中的预定义模式改进边缘检测?

标签 image matlab image-processing edge-detection

我用MATLAB编写了一个代码,在平滑(使用中值滤波器进行降噪)、用Sobel算法进行边缘检测并最终进行阈值化之后,使用预定义的模式来忽略不真实(或不希望)的边缘我的问题是,当我对一个边缘检测(BW)图像应用例如Pattern = [1 1 1;0 0 0;0 0 0]时,令人惊讶的是,我保留了垂直边缘(实际上没有做任何显著的更改)。
我的模式应用程序代码:

[l,k] = size(edgeDetected_BW);

P(1:l , 1:k)=1; //improved edge detected image
Pattern = [1 1 1;0 0 0;0 0 0];


for i=1:l-2
   for j=1:k-2
       if((edgeDetected_BW([i i+1 i+2] , [j j+1 j+2])| Pattern) == Pattern)
          P(i+1 , j+1) = 0;
       end
   end
end

运行后,代码行变粗,并删除了一些点我的错误在哪里?
.:汽车后视图:。
黄色圆圈中的点是不需要的。

最佳答案

如果您的目标是细化边缘,我将使用[1 1 1;0 0 0;1 1 1];作为模式模板此外,P(i:i+2 , j:j+2) = 0;

关于image - 如何使用MATLAB中的预定义模式改进边缘检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20711285/

相关文章:

java - 创建一个 Applet Mad Libs 游戏

arrays - 生成并显示分数系列

matlab - 从矩阵中提取 block 对角线

linux转换缩略图但移动位置

opencv - 图像非矩形部分的仿射变换

php - 使用Jcrop裁剪并使用PHP GD保存时如何获得可变宽度和高度

java - listview回收早了吗?还是 Universal ImageLoader 错误地取消了?还是我的逻辑错了?

使用 paintComponent 的 Java 幻灯片图像延迟

Pythonic 相当于 Matlab 的 textscan

image - 尝试访问位置向量时索引超出矩阵维度