Matlab边缘检测功能

时间:2016-11-28 00:42:09

标签: matlab function edge-detection

我有一项任务是使用Matlab创建自己的边缘检测功能。但不幸的是,我没有图像处理领域的经验,只有我几乎不知道如何表示图像。在这个领域知之甚少。

我已经阅读了一些论文和PDF文件,但他们专注于许多主题,我觉得我可能不需要它们来完成我的任务。

我很高兴知道您的建议,或者是否有任何特定的论文,PDF,教程或快速指南。

谢谢

1 个答案:

答案 0 :(得分:1)

每个边缘检测算法都使用像3x3矩阵这样的内核。如下所示, sobel_x sobel_y 被称为Sobel operator。如果您发现图像卷积和Sobel算子,您将找到图像的边缘。

A=imread('motor.png'); % load image
A=rgb2gray(A); % convert to grayscale from rgb
A=im2double(A); % convert to double

sobel_x = [-1 0 1 ;... % define sobel operator of x axis 
           -2 0 2 ;...
           -1 0 1];...
sobel_y = [1 2 1;... % define sobel operator of y axis
           0 0 0;... 
           -1 -2 -1];

new_img_x=conv2(A,sobel_x); % convolution of image and sobel operator on x axis
new_img_y=conv2(A,sobel_y); % convolution of image and sobel operator on y axis

new_img=new_img_x+new_img_y; % sum two convolution

imshow(new_img); % show newly processed image