Matlab提取中心线后用hough拟合直线程序有问题,希望大家给指点一下

具体程序如下clc;clearall;closeall;I=imread('tu1.jpg');%由于图像本身为灰度图像,所以不需要灰度化%I2=rgb2gray(I);... 具体程序如下
clc;
clear all;
close all;
I=imread('tu1.jpg');%由于图像本身为灰度图像,所以不需要灰度化
% I2=rgb2gray(I);
figure(1),imshow(I);

%%%%提取中心线start%%%%%%%%%%
a=I;
[max_a index]=max(a); %找出a的格式
b=repmat(max_a,size(a,1),1); %按矩阵a格式复制b矩阵,b矩阵全是最大值
a(a<b)=0; %矩阵a中小于最大值的元素全变为0
figure(2),imshow(a);
%%%%%%%提取中心线end%%%%%%%%%%%%
%%%%%%%%%%%hough变换检测直线start%%%%%%%%%%%%
BW=a;
[H,T,R] = hough(BW,'RhoResolution',0.5,'ThetaResolution',0.5);
% display the original image显示原始图像
figure(3),imshow(imadjust(mat2gray(H)),'XData',T,'YData',R,'InitialMagnification','fit');
title('Hough transform of tu1.jpg ');
xlabel('\theta'), ylabel('\rho');
axis on, axis normal, hold on;
colormap(hot);
peaks = houghpeaks(H, 50,'threshold',ceil(0.3*max(H(:))));
lines = houghlines(BW, T, R,peaks);
figure(4),imshow(a);
lines(1).point2(1)=lines(1).point2(1)+315;
hold on
max_len = 0;
for k = 1:length(lines)
% 绘制各条线
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',1,'Color','red');

end
hold off
%%%%%%%%%%%%%%hough变换检测直线end%%%%%%%%%%%%%%%%
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
若以下回答无法解决问题,邀请你更新回答
我行我素850915
2015-05-31 · TA获得超过8241个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:1753万
展开全部
把'tu1.jpg'文件发过来,调试用。我qq2674716548
追问
邮件已发,谢谢你
追答
我在QQ中已说明,如还不会改过来,我就把程序粘贴出来或发过去。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式