Morevac角点检测 matlab
时间: 2023-11-02 08:01:20 浏览: 40
Morevac角点检测算法是一种基于边缘检测的角点检测方法,主要步骤包括以下几步:
1. 对图像进行灰度化处理。
2. 对图像进行高斯滤波,消除噪声。
3. 利用Sobel算子进行边缘检测,得到边缘图像。
4. 对边缘图像进行二值化处理。
5. 对二值化图像进行形态学操作,提取出角点候选点。
6. 对候选点进行角度判断,确定真正的角点。
下面是MATLAB代码实现:
```matlab
% 读取图像
img = imread('image.jpg');
% 灰度化处理
gray_img = rgb2gray(img);
% 高斯滤波,消除噪声
blur_img = imgaussfilt(gray_img, 2);
% Sobel算子进行边缘检测
sobel_img = edge(blur_img, 'sobel');
% 二值化处理
binary_img = imbinarize(sobel_img);
% 形态学操作,提取出角点候选点
SE = strel('disk', 3);
dilated_img = imdilate(binary_img, SE);
eroded_img = imerode(dilated_img, SE);
corners = eroded_img & ~binary_img;
% 角度判断,确定真正的角点
[corner_x, corner_y] = find(corners);
corner_num = length(corner_x);
for i = 1 : corner_num
dir_x = corner_x(i) - 2 : corner_x(i) + 2;
dir_y = corner_y(i) - 2 : corner_y(i) + 2;
dir_img = sobel_img(dir_x, dir_y);
dir_sum = sum(dir_img(:));
if dir_sum ~= 0
corners(corner_x(i), corner_y(i)) = 0;
end
end
% 绘制角点
imshow(img);
hold on;
[x, y] = find(corners);
plot(y, x, 'r.', 'MarkerSize', 20);
```
其中,SE为形态学操作的结构元素,可以根据需要进行调整。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)