关于一张图像的Hough完整处理过程

关于一张图像的Hough完整处理过程

首先载入图片

A=imread(‘DSC9342.bmp’);

由于图片可能不是二值图片,需要进行转换

X=rgb2gray(A);

之后对图片进行边缘检测

BW=edge(X,‘sobel’,0.1);
imshow(A),figure;imshow(BW),figure;

在这里插入图片描述
对检测结果进行Hough变换

[H,T,R]=hough(BW,‘ThetaResolution’,1,‘RhoResolution’,10);
imshow(H,[],‘Xdata’,T,‘Ydata’,R,‘Initialmagnification’,‘fit’);
xlabel(’\theta’),ylabel(‘r’);
axis on,axis normal,hold on;

在这里插入图片描述
对Hough变换中的密集交点进行检测

P=houghpeaks(H,20,‘threshold’,ceil(0.15*max(H(?)),‘NHoodSize’,[101,101]);
x=T(P(:,2));y=R(P(:,1));
plot(x,y,‘s’,‘color’,‘white’);
lines=houghlines(BW,T,R,P,‘FillGap’,20,‘MinLength’,20);
figure,imshow(X),hold on
max_len=0;
for k=1:length(lines)
xy=[lines(k).point1;lines(k).point2];
plot(xy(:,1),xy(:,2),‘LineWidth’,4,‘Color’,‘black’);
end

得到最后的结果为:
在这里插入图片描述

可见其中主要的线条已经被检测出来了,之后需要的就是读取线条的数据,得到倾斜角度,最后将图片旋转就完成了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值