植物叶片特征参数计算.doc

上传人:m**** 文档编号:559597811 上传时间:2023-10-26 格式:DOC 页数:9 大小:279KB
返回 下载 相关 举报
植物叶片特征参数计算.doc_第1页
第1页 / 共9页
植物叶片特征参数计算.doc_第2页
第2页 / 共9页
植物叶片特征参数计算.doc_第3页
第3页 / 共9页
植物叶片特征参数计算.doc_第4页
第4页 / 共9页
植物叶片特征参数计算.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《植物叶片特征参数计算.doc》由会员分享,可在线阅读,更多相关《植物叶片特征参数计算.doc(9页珍藏版)》请在金锄头文库上搜索。

1、植物叶片特征参数计算报告人: 刘博 班级: 电信111 学号: 2011012442 一、 实验目的1. 完成叶片真实面积的计算、圆度、矩形度的计算2. 完成质心在图像上的标记3. 提取出叶片的真实轮廓4. 叶片叶脉的提取二、实验内容编写相对应的程序实现实验目的。程序与功能对应关系如下:1.叶片真实面积的计算mianji.m2.圆度的计算以及叶片的真实轮廓yuandu.m3.矩形度的计算juxingdu.m4.质心在图像上的标记zhixin.m5.叶片叶脉的提取yemaitiqu.m三、实验步骤1. 叶片真实面积的计算在计算叶片的真实面积时,参考很多源程序,程序如下:(1).clc;I1=im

2、read(leaf.png);I2=im2bw(I1);figure(1);imshow(I2);L,num=bwlabel(I2,8); %区域标记, STATS=regionprops(L, all);for i=1:num area(i)=STATS(i).Area; %计算各区域的面积。endA=max(area);L=imread(L2.png);L2=im2bw(L);L,num=bwlabel(L2,8); %区域标记, STATS=regionprops(L, all);for i=1:num area(i)=STATS(i).Area; %计算各区域的面积。endB=max(

3、area);S=A/B*400; %求实际面积fprintf(The area is %8.5f平方毫米n,S); %?注意输出格式前须有%符号运行结果:第二个程序:%ticclear;% clc;I_rgb=imread(C:Documents and SettingsAdministrator桌面13.jpg); %读取文件数据I_gray=rgb2gray(I_rgb); %灰度化figure,imshow(I_rgb);figure,imshow(I_gray);threshold = graythresh(I_gray);bw = im2bw(I_gray,threshold); f

4、igure,imshow(bw)bw_i=imcomplement(bw);figure,imshow(bw_i) %图像反转L=bwlabel(bw_i); %图像标记s=regionprops(L, area); %计算每一个区域大面积areas1=cat(1, s.Area); %求面积areas2=sort(areas1,descend);I_final_use=bwareaopen(bw_i,areas2(2); %去除小区域imshow(I_final_use)t=imhist(I_gray); %直方图,用来显示分割阈值% cftoolI_bw=imcomplement(im2b

5、w(I_gray,175/256);%二值化,175为根据imhist得到的结果areas3=areas2/max(areas1);%面积降序排列并归一化s运行的结果为:2.圆度的计算以及叶片的真实轮廓程序:%颗粒圆度 clear;close all; % %读取源图像 I = imread(leaf.png); figure;imshow(I); % %灰度化、取反 h = rgb2gray(I); figure;imshow(h);%灰度图像 h = imcomplement(h);%取反 figure;imshow(h); % %中值滤波、二值化 h = medfilt2(h,4,4);

6、 bw = im2bw(h,graythresh(h); % %消除噪点 se = strel(disk,2); bw = imclose(bw,se); figure;imshow(bw); % %填补闭合图形,填充色为白色 bw = imfill(bw,holes); % %边界寻找 B,L = bwboundaries(bw,noholes); % 为每个闭合图形设置颜色显示 figure;imshow(label2rgb(L, jet, .5 .5 .5) hold on for k = 1:length(B) boundary = Bk; plot(boundary(:,2), bo

7、undary(:,1), w, LineWidth, 2) end % %计算面积 stats = regionprops(L,Area,Centroid);threshold = 0.94; % 循环处理每个边界,length(B)是闭合图形的个数,即检测到的陶粒对象个数 for k = 1:length(B) % 获取边界坐标 boundary = Bk; % 计算周长 delta_sq = diff(boundary).2; perimeter = sum(sqrt(sum(delta_sq,2); % 对标记为K的对象获取面积 area = stats(k).Area; % 圆度计算公

8、式4*PI*A/P2 metric = 4*pi*area/perimeter2; % 结果显示 endfprintf(圆度识别结果(越圆越接近1): %8.5fn,metric); %?注意输出格式前须有%符号运行结果:附带叶片的真实轮廓(figure5),白色部分即为叶片真实轮廓3.矩形度的计算程序:RGB = imread(leaf.png);figure,imshow(RGB);I = rgb2gray(RGB);threshold = graythresh(I);bw = im2bw(I,threshold);figure,imshow(bw)% remove all object

9、containing fewer than 30 pixelsbw = bwareaopen(bw,30);% fill a gap in the pens capse = strel(disk,2);bw = imclose(bw,se);% fill any holes, so that regionprops can be used to estimate% the area enclosed by each of the boundariesbw = imfill(bw,holes);figure,imshow(bw)ed=edge(bw);figure,imshow(ed)%以上是图

10、像二值化 上面制作二值化图像L = bwlabel(bw);L1 = bwlabel(ed);Ar=zeros(1,max(L(:);perimeter=zeros(1,max(L1(:);metric=zeros(1,max(L1(:);Pwl=zeros(1,max(L1(:);Pr=zeros(1,max(L1(:);for i=1:max(L(:)Ar(i)=sum(bw(L=i);perimeter(i)=sum(ed(L=i);metric(i) = 4*pi*Ar(i)/perimeter(i)2;y,x=find(L=i);x0=min(x(:);x1=max(x(:);y0=

11、min(y(:);y1=max(y(:);hold onrectangle(Position,x0,y0,x1-x0,y1-y0,edgeColor,g,LineWidth,1)if x1-x0=y1-y0Pwl(i)=(x1-x0)/(y1-y0);elsePwl(i)=(y1-y0)/(x1-x0);endPr(i)=Ar(i)/(y1-y0)*(x1-x0);endfprintf(矩形度是 %8.5fn,1./Pwl); %?注意输出格式前须有%符号4.质心在图像上的标记程序:clear;clc;close allI=imread(leaf.png);I_gray=rgb2gray(I)

12、;level=graythresh(I_gray);height,width=size(I_gray);I_bw=im2bw(I_gray,level);for i=1:height %循环中进行反色for j=1:width if I_bw(i,j)=1 I_bw(i,j)=0; else I_bw(i,j)=1; end endendL,num=bwlabel(I_bw,8);plot_x=zeros(1,num);%用于记录质心位置的坐标plot_y=zeros(1,num);for k=1:num %num个区域依次统计质心位置 sum_x=0;sum_y=0;area=0; for

13、i=1:height for j=1:width if L(i,j)=k sum_x=sum_x+i; sum_y=sum_y+j; area=area+1; end end end plot_x(k)=fix(sum_x/area); plot_y(k)=fix(sum_y/area);endfigure(1);imshow(I_bw);for i=1hold onplot(plot_y(i) ,plot_x(i), *)end运行结果:第二个程序运行的结果为:5.叶脉的提取i=imread(leaf.png); i2=im2double(i);ihd=rgb2gray(i2);thr,sorh,keepapp=ddencmp(den,wv,ihd);ixc=wdencmp(gbl,ihd,sym4,2,thr,sorh,keepapp);k2=medfilt2(ixc,7

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号