图像处理课程设计报告设计题目图像处理技术应用实践学校南京信息工程大学
专业计算机科学与技术
学号 20121308105
班级 3
姓名唐盼
一、图像的采集、读取及显示
1.采集树叶一片,在纸上画上参照物,与树叶一起拍下,得到树叶的原始彩色图片。
2.将图片传到MATLAB开发平台上,读取图片。
3.将彩色图转换为灰度图。
二、图像处理
要求需要用到中值滤波,调节图像对比度,边缘检测sobel 算子,填充,标记。
1.现对图像进行中值滤波区噪声。
2.调节对比度,这个参数还是很重要的,决定着后面的操作能不能顺利进行。
3.进行边缘检测
4.形态性里面的膨胀方法让图像的线条加粗。
5.对检测出来的边缘进行填充。
6.平滑,不断的平滑,知道上面的噪声全部删除,这个步骤需要自己
不断的尝试。
四、实验结果及误差分析
我们事先将左边的小方块测量出来了面积是九,此时我们只要得到小方块所占的像素多少以及树叶的像素多少一比,再乘以九即可得到树叶的面积。
通过划分小正方形的方法,我们测的树叶的大小是11.25。
五、结论
用这个方法测出来的树叶大小精度还算可以,主要的误差集中在,树叶有阴影部分,然后树叶也不是很平整,还有我们自己的画参照物可能也不够精确。
六、附程序清单
Untitled5.m文件
clc;
clear;
S_model=9;
A=imread('C:\Users\evol123\Desktop\1234.jpg'); %¶ÁÈë600*400µÄͼÏñ
B=rgb2gray(A); %ת»¯Îª»Ò¶Èͼ
C=myfilterM(B,3); %ÀûÓÃ×ÔÖÆÖÐÖµÂ˲¨¸øÍ¼ÏñÈ¥Ôë
D=imadjust(C,[0.35 1]); %µ÷½ÚͼÏñ¶Ô±È¶È
E=edge(D,'sobel'); %±ßÔµ¼ì²â
a=strel('line',3,90); %Ìϸ·ì
b=strel('line',3,0);
F=imdilate(E,[a b]);
G=imfill(F,'holes'); %Ìî³ä
SeD=strel('diamond',1); %ƽ»¬Ö±µ½Ê÷Ò¶±úÏûʧ
H=imerode(G,SeD);
H=imerode(H,SeD);
H=imerode(H,SeD);
H=imerode(H,SeD);
H=imerode(H,SeD);
H=imerode(H,SeD);
H=imerode(H,SeD);
H=imerode(H,SeD);
H=imerode(H,SeD);
H=imerode(H,SeD);
H=imerode(H,SeD);
H=imerode(H,SeD);
L=bwlabel(H,8); %񈬀
s=regionprops(H,'Area','Centroid');
% s.Area
l=ismember(H,find([s.Area]>=1000));
number=size(s,1);
statistics=[s.Area];
centroid=cat(1,s.Centroid);
area(2)=S_model;
for i=1:number
area(i)=statistics(i)/statistics(2)*area(2);
end
subplot(241),imshow(A);
subplot(242),imshow(B);
subplot(243),imshow(C);
subplot(244),imshow(D);
subplot(245),imshow(E);
subplot(246),imshow(F);
subplot(247),imshow(G);
subplot(248),imshow(H);
figure,imshow(l);
for i=1:number;
text(centroid(i,1),centroid(i,2),num2str(area(i)));
end
myfilterM.m文件
function [new_X] = myfilterM(X,mod_size)
new_X=X;
S=size(X);
%°´ÐбéÀú
for i=1+(mod_size-1)/2:S(1)-(mod_size-1)/2
%½«µÚiÐÐµÄµÄÆäËû¿éÒÀ´Î½øÐÐÔËËã
for j=1+(mod_size-1)/2:S(2)-(mod_size-1)/2
if new_X(i,j)==0||new_X(i,j)==255
temp=X(i-(mod_size-1)/2:i+(mod_size-1)/2,j-(mod_size-1)/2:j+(mod_size -1)/2);
%ÇóÖÐÖµ
new_X(i,j)=median(temp(:)) ;
end
end
end
%new_X1=new_X(1+(mod_size-1)/2:S(1)-(mod_size-1)/2,1+(mod_size-1)/2:S (2)-(mod_size-1)/2);。