对多边形边缘检测并拟合线段长度和角度(matlab实现)

这段代码展示了使用MatLab进行图像处理,包括边缘检测(使用Sobel和Canny算子)和角点检测(Harris角点检测)。首先,对图像进行二值化处理,然后应用边缘检测算法。接着,通过Harris角点检测找到图像中的角点,并计算角点之间的距离和角度。最后,输出检测到的角点坐标和相关信息。
摘要由CSDN通过智能技术生成

这是我家瑶瑶写的

clear all;close all;clc;
%边缘检测

I = imread('5.jpg');
figure;
subplot(1,2,1);
imshow(I);
I1=im2bw(I,0.72);%二值化
subplot(1,2,2);
imshow(edge(I1, 'sobel'));
I2=edge(I1, 'sobel');

%边缘检测

f1=imread('5.jpg'); %读入要提取的图片
figure;subplot(1,3,1);imshow(f1);
f2=im2bw(f1,0.72);%二值化
f3=im2uint8(f2);
subplot(1,3,2);imshow(f3);
BW=edge (f3,'canny',[0,0.7],0.9);%提取边缘
subplot(1,3,3);imshow(BW);

%角点检测
%MatLab角点检测程序harris。
ori_im2=rgb2gray(imread('5.jpg'));    
%ori_im2=imresize(ori_im2',0.50,'bicubic');  %加上这句图就变成竖着的了  
 
fx = [5 0 -5;8 0 -8;5 0 -5];          % % la gaucienne,ver axe x
Ix = filter2(fx,ori_im2);              % la convolution vers axe x
fy = [5 8 5;0 0 0;-5 -8 -5];          % la gaucienne,ver axe y
Iy = filter2(fy,ori_im2);              % la convolution vers axe y
Ix2 = Ix.^2;
Iy2 = Iy.^2;
Ixy = Ix.*Iy;
clear Ix;
clear Iy;
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值