map1=imread('p.jpg');[row,col,dep]=size(map1); %行,列,深度值map=zeros(row,col);pixsum=row*col; %像素总数%灰度化for i=1:row for j=1:col map(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); endendmap2=map; %灰度图副本%灰度化完成,输出灰度图figure(1)imshow(map,[])title('原始灰度图像')B=zeros(row,col); %存储输出图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%根据通道二值化 for i=1:row for j=1:col if map1(i,j,2)>map1(i,j,1)&&map1(i,j,2)>map1(i,j,3) B(i,j)=1; else B(i,j)=0; end end end%figure(2)%imshow(B,[])%title('二值化后图像')%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%以下为边界提取程序A=ones(3,3);%腐蚀剂Y1=zeros(row,col);%腐蚀后图像for i=2:row-1 for j=2:col-1 a=sum(sum(B(i-1:i+1,j-1:j+1).*A)); if a==9 Y1(i,j)=1; else Y1(i,j)=0; end endendY=B-Y1;num=sum(sum(Y));fprintf('轮廓图像中边界长度为%dn',num)figure(3)imshow(Y,[])title('轮廓图像')%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%以下为直线检测程序N=101; %theta范围为0-pi/2,将其100等分,在进行正余弦计算时再转换成弧度。rohmax=round(sqrt(row^2+col^2))+1; %roh的最大值应为RT=zeros(N,rohmax); %roh-theta计数器。for i=1:row for j=1:col if Y(i,j)==1 %若为边界上的点,则进行计算。 for theta=0:pi/200:pi/2 roh=i*cos(theta)+j*sin(theta); m=round(theta*200/pi+1); n=round(roh); RT(m,n)=RT(m,n)+1; end end endend%统计完成p=90;%包含p个以上像素的直线标记出来cnt=0;%记录直线条数q=[];for i=1:N for j=1:rohmax if RT(i,j)>=p q=[q,RT(i,j)]; cnt=cnt+1; RT(i,j)=1; else RT(i,j)=0; end endend%标记完成Y2=zeros(row,col); %标记图for m=1:N for n=1:rohmax if RT(m,n)==1 %遍历RH图,只要roh和theta满足条件,计算响应的(x,y) for i=1:row for j=1:col if Y(i,j)==1 %遍历边界点,检测是否在满足条件的直线上。 z=i*cos((m-1)*pi/200)+j*sin((m-1)*pi/200); %z=xcostheta+ysintheta w=round(z); if w==n Y2(i,j)=1; end end end end end endend%检测完成,标记在Y2中for i=1:row for j=1:col if Y2(i,j)==1 map2(i,j)=255; %检测到的直线标记在灰度图副本中 end endendfigure(4)imshow(map2,[])title('直线检测结果')fprintf('n%d条直线长度分别为:n',cnt)lentth=q'
导读:目前正在解读《直线检测的matlab实现》的相关信息,《直线检测的matlab实现》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《直线检测的matlab实现》的详细说明。
简介:在实现matlab时,其中有一些需要二值化处理的地方,由于图像是植物,这里根据绿色的地方RGB通道中绿色通道的数值会较大的特点进行二值化。
提醒:《直线检测的matlab实现》最后刷新时间 2024-03-14 01:02:31,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《直线检测的matlab实现》该内容的真实性请自行鉴别。