大作业数字图像处理文档格式.docx
- 文档编号:17508614
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:10
- 大小:308.62KB
大作业数字图像处理文档格式.docx
《大作业数字图像处理文档格式.docx》由会员分享,可在线阅读,更多相关《大作业数字图像处理文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
2.基本知识
需要掌握图像的分割技术和图像的识别技术,并利用相应的函数将所需要显示的部位从背景中提取出来。
我们日常所获得的便是RGB彩色图像。
在处理过程中基本思路都是首先将图像处理为灰度图像,接下来处理为二值图像。
进而利用其它函数处理。
2.1RGB图像
RGB图像被用来表示彩色图像。
与索引图像一样,它分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。
它的每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩阵中,由于每一像素的颜色需由R、G、B三个分量来表示,M、N分别表示图像的行列数,三个MxN的二维矩阵分别表示各个像素的R、G、B三个颜色分量。
RGB图像的数据类型一般为8位无符号整形,通常用于表示和存放真彩色图像,当然也可以存放灰度图像。
2.2灰度图像
灰度图像矩阵元素的取值范围通常为[0,255]。
因此其数据类型一般为8位无符号整数的(int8),这就是所谓256灰度图像。
“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色。
2.3二值图像
二值图像的二维矩阵则是仅由0、1两个值构成。
“0”代表黑色,“1”代白色。
由于每一像素取值仅有0、1两种可能,所以计算机中二值图像的数据类型通常为1个二进制位。
二值图像通常用于文字、线条图的扫描识别(OCR)和掩膜图像的存储。
2.4图像分割
图像分割是数字图像处理中的关键技术之一。
它将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。
虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。
因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一。
2.5图像描述
图像描述是图像识别和理解的必要前提。
作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。
2.6图像识别
图像识别属于模式识别的范畴,其主要内容是图像经过某些预处理后,进行图像分割和特征提取,从而进行判决分类。
3.功能分析及设计
在本题中,苹果的形状与其它水果是不同的,因此可以利用这一特点将其从混杂的水果中寻找出来,也可以根据它的形状进而使用直径这一特性来描述它的大小。
苹果表面上的伤痕拥有与苹果本身不同的色泽,其形状虽然不规则但是也多为圆形。
也可以根据类似的方式来进行设计。
首先可以考虑将苹果从各种水果中识别出来。
%读取原图,并处理成二值图像
I=imread('
d:
\50.jpg'
);
I2=rgb2gray(I);
BW=im2bw(I2,0.9);
total=bwarea(~BW);
figure,subplot(1,3,1),imshow(I),title('
原始图像'
subplot(1,3,2),imshow(I2),title('
灰度图像'
subplot(1,3,3),imshow(BW),title('
二值图像'
%进行边缘检测得到了不连续的图形边界(采用sobel算子或区域增长)
%得到各个图形的连续边界
SE=strel('
rectangle'
[4030]);
%结构定义
J2=imopen(BW,SE);
%开启运算
figure,imshow(J2),title('
对二值图像进行开运算后的结果图像'
square'
5);
%定义3×
3腐蚀结构元素
J=imerode(~J2,SE);
BW2=(~J2)-J;
%检测边缘
figure,imshow(BW2),title('
3*3腐蚀运算后的图像边界轮廓'
%填充了已有的检测的连续形状边界
B=imfill(BW2,'
holes'
B=bwmorph(B,'
remove'
figure,imshow(B),title('
提取出的边界图像'
%将不同的图形进行分别标记,num表示连接的图形对象的个数
[Label,num]=bwlabel(B,8);
%得到各个图像的边界像素的数组
%计算各个图形单元的周长用连接像素点或数边界像素点个数的方法numPoints数组表示各个图形边界的像素个数(即用个数来表示周长)
%num=max(max(Label));
fori=1:
num
Premeter(i)=0;
end
[row,col]=size(Label);
row
forj=1:
col
if(Label(i,j)>
0)
Premeter(Label(i,j))=Premeter(Label(i,j))+1;
%计算标记后的各块图形边界中像素的个数的总数
%5计算各个图形单元的面积
FilledLabel=imfill(Label,'
%填充打过标记的边界线中间围成的图形区域
figure,imshow(FilledLabel),title('
打过标记后并已被填充的结果图像'
fori=1:
Area(i)=0;
end
[row,col]=size(FilledLabel);
if(FilledLabel(i,j)>
Area(FilledLabel(i,j))=Area(FilledLabel(i,j))+1;
%通过统计像素点个数的方式来求各形状的面积
%计算各个图形单元的圆度
num
Ecllipseratio(i)=4*pi*Area(i)/Premeter(i)^2;
%识别苹果
%构建苹果的分类器,在二维特征空间对各个图像进行类别区分
apple=0;
fori=1:
num
if((Ecllipseratio(i)<
1.25)&
&
(Ecllipseratio(i)>
1.0))%分类器识别苹果的准则:
判断各个图形中圆度居于1.0与1.25之间的的为苹果
apple=i;
%对分出来的类别分别构建相应的图像掩膜,并用对原图的亮度图像进行掩膜操作
appleHSV=HSV;
fork=1:
if(FilledLabel(j,k)~=apple)
appleHSV(j,k,3)=0;
%变换生成最终的结果图像,图像中显示的结果即对应分类器中指定的类别
applematrix=hsv2rgb(appleHSV);
%转换为RGB彩图,彩图中已经滤去了其余水果,只剩下苹果
figure,imshow(applematrix),title('
水果类别:
苹果'
接下来可以考虑计算苹果的直径。
因为对于苹果来讲,不同的大小价格是不同的。
检测思路为:
将图片灰度化、二值化后,利用regionprops函数计算二值化图像的最小外接矩形大小,外接矩形框长度和宽度中的最大值即为苹果最大横切面直径。
此时的数值为像素值,通过与照片的长、宽像素值进行比较,结合图片的实际长、宽值,即可求出果径的实际长度。
具体函数如下:
rgb=imread('
\apple.png'
rgb1=im2double(rgb);
r=rgb1(:
:
1);
g=rgb1(:
2);
b=rgb1(:
3);
I=(r+g+b)/3;
tmp1=min(min(r,g),b);
tmp2=r+g+b;
tmp2(tmp2==0)=eps;
S=1-3.*tmp1./tmp2;
tmp1=0.5*((r-g)+(r-b));
tmp2=sqrt((r-g).^2+(r-b).*(g-b));
theta=acos(tmp1./(tmp2+eps));
H=theta;
H(b>
g)=2*pi-H(b>
g);
H=H/(2*pi);
H(S==0)=0;
I=(r+g+b)/3;
%Combineallthreeresultsintoanhsiimage.
hsi=cat(3,H,S,I);
S=im2bw(S,0.2);
imshow(S)
求取外接最小矩形框,并利用regionprops函数计算图像区域的属性信息,并读取矩形的长、宽数据,以长、宽中的最大值为果径的数值。
这里的数值为像素值。
[l,m]=bwlabel(S,8);
status=regionprops(l,'
BoundingBox'
x=status(2,1).BoundingBox;
%读取矩形的长宽
X=max(x);
%取最大值
取得果径的像素值后,与图片的长(宽)像素值相比。
由于图片的像素、实际长宽等数值已预先设定并保持不变,因此根据果径像素与图片像素的比值可求出果径的实际数值。
接下来可以考虑检测水果表面的缺陷。
果面的缺陷主要包括压伤、碰伤、虫蛀伤亦或是裂开等,但所有表面可见的伤痕都表现为正常果面色泽、质地不一致。
因此可通过提取果面的图像特征,检测缺陷情况。
首先,读入图像后用rgb2gray函数对受检苹果进行灰度化,并用imadjust函数调整灰度图像的强度值。
I=imread(d:
\'
apple3.jpg'
I2=rgb2gray(I);
J=imadjust(I2,[0.10.2],[]);
利用im2bw函数将调整后的灰度图像转换为二值图像,level值取1。
为方便检测,对二值图像进行取反处理。
Y=im2bw(J,1);
Y=~Y。
与计算果径的方法相同,求病斑区域的外接矩形框,并利用regionprops函数计算图像区域的属性信息。
[l,m]=bwlabel(Y,8);
imshow(Y);
holdon;
m
rectangle('
position'
status(i).BoundingBox,'
edgecolor'
'
r'
end
holdoff;
由于病斑的不规则,且一个果面可能会有多个病斑,图像区域中会有多个外接矩形框,因此需要对每个矩形框的大小进行判定,选取面积最大的矩形框。
[x,y]=size(status);
%读取图片信息
x%共有x个矩形框
X(i)=max(status(i).BoundingBox);
%取矩形框最大值
x2=status(i,1).BoundingBox;
%读取矩形框的长、宽
x2
(1)
x2
(2)
在这里,以最大矩形框的面积近似为病斑的面积。
通过矩形框尺寸的像素值与照片长、宽像素值的比值,以及照片实际尺寸,进而确定病斑实际面积。
4.实验结果与分析
识别原图:
经过识别之后所得到苹果的图像:
苹果直径检测原图:
S分量二值化之后的苹果图像
有缺陷的苹果原图:
缺陷检测之后所识别的苹果表面伤痕:
变质区域的外接矩形框
根据伤痕的图形,可以用它的最大外接矩形框面积来近似确定实际面积。
5.总结与体会
实验初步实现了利用MATLAB技术对苹果的分离、苹果的大小(最大横切面直径)、苹果表面病斑面积等评定指标的检测判定,达到了预期目的。
无论是在计算伤痕的实际面积还是苹果的大小时都采取了近似外接矩形框面积的方法,这样是存在一定误差的。
实验的确相当复杂,但同样的在学习过程中也学到了很多东西。
MATLAB的强大功能只在我们的面前展现出了冰山一角,相信在未来的学习中我会学到更多的东西。
6.参考文献
[1]张宏编著.图像处理与分析.北京:
机械工业出版社.2016.
[2]杨高波,杜青松编著.MATLAB图像/视频处理应用及实例.北京:
电子工业出版社.2010.
[3]杨杰主编.数字图像处理及MATLAB实现.北京:
[4]沈庭芝.数字图像处理及模式识别.北京理工大学出版社,1998
[5]章毓晋.图像处理和分析.清华大学出版社,1999
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 作业 数字图像 处理