如何在不使用方法' edge'的情况下检测图像边缘,仅使用数学运算(矩阵或Derived或div或任何其他)?实际上,如何使用算法edge
或Canny
或其他任何方法重写函数sobel
?
例如:
粉红色矩形256 * 256 黑色矩形127 * 127
答案 0 :(得分:2)
您声明您希望使用Canny,Sobel或其他算法。这些都可以在边缘使用。试试例如:
BW = edge(I,'canny');
我是你的图像矩阵。如果您有兴趣了解edge
的工作原理,请输入
edit edge
进入命令窗口。然后,您将看到MATLAB自己的实现。
您可能希望从头开始重新实现edge
,以便更好地了解图像处理算法的工作原理。如果是这样,我会引导您走向以下来源:
对于具有矩形的特定示例,很有可能使用edge
来查找边缘。您需要做的一件事是使用rgb2gray
将rgb图像转换为灰度图像。试试例如:
rgb_image = imread('iarLe.png');
gray_image = rgb2gray(rgb_image);
edge_image = edge(gray_image);
imshow(edge_image);