【发布时间】:2013-12-26 19:30:20
【问题描述】:
我正在尝试执行一项任务,但有 2 个问题。第一个,我必须拍一张图像,然后检测表面上的边缘。
这是原图:
这就是结果:
但是,我得到了这个:
我正在使用一个非常简单的代码:
filter=[1 2 1;0 0 0;-1 -2 -1];
image=imread('boat.jpg');
image_edge=filter2(filter,image);
imshow(image_edge);
如您所见,这很容易,但我没有相同的图像。我的过滤器有问题吗?
第二个问题是下一个:我不知道如何创建 miximg 系数矩阵,mask(x,y)。该矩阵必须基于边缘创建(平坦区域的值为 1,边缘逐渐减小到 0)。我应该使用什么命令?
【问题讨论】:
-
您的过滤器是否同时提取垂直和水平边缘?因为 filter2 使用 cov2 函数并提取垂直和水平边缘,所以您需要在代码中使用 cov2 两次。
-
@Thomas,对不起。下次我会尝试正确地做到这一点。谢谢。
标签: matlab image-processing edge-detection noise-reduction