版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、图像处理与分析第1题:啤酒厂要对酒瓶的质量进行检测,需要通过摄像机拍摄,找出瓶身上有杂质的酒瓶。要求:1)杂质实际尺寸为2mm×2mm,所成像的尺寸大于5×5个像素,要对整个范围成像。2)给出满足要求的像元尺寸、物距、成像面大小以及具体摄像机的型号、成像面的分辨率、镜头焦距等相关参数。图2 摄相机镜头成像取像元尺寸为,则杂质所成像的尺寸最小为。设物距为1米,对2mm×2mm的杂质成像,可知成像的像距最小为: 根据工程光学公式:1f=1物距+1像距得1f=11000+125得镜头的焦距最大为:24.3mm对于相机分辨率,则要根据成像视野对应的实际范围而定。例如若酒瓶
2、高度为25mm,则视野范围为,100025=250成像面大小成像面大小=6.25mm 所以成像面最小为6.25mmX6.25mm则相机的成像面分辨率应不小于6.25mm10m 2=625X625 根据上述分析计算,选取符合要求的摄像机参数如下表所示:表一 摄像机相关参数表项型号AFT-VS078FM/FC分辨率1024×768像素尺寸4.65m×4.65m传感器类型逐行扫描CCD传感器光学尺寸1/3帧速率30fps信噪比大于54dB曝光方式帧曝光输出方式FireWireIEEE1394A供电要求DC12V快门速度1/10000到30 sI/O接口(可选)数字I/O触发接口尺
3、寸(W*H*D)50.8×50.2×56.5(mm)重量、功率约265g、2.4W第2题利用双线性插值法对图片做几何中心的旋转,观察旋转前后图像灰度直方图的变化情况。图像缩小结果:原图像 缩小后的图像图像旋转: 图1 原始图像 图2 中心旋转30度 插值程序:clc;clear;I=imread('121.jpg');B=imresize(I,0.5,'bilinear');C=imresize(I,0.5,'nearest');figure(1)imshow(I);figure(2)imshow(B);figure(3)im
4、show(C);旋转程序clc;clear;I=imread('121.jpg');figure;imshow(I)b=imrotate(I,30,'nearest','crop')figure;imshow(b)第3题:选择一张照片,对照片加椒盐噪声、高斯噪声,然后用均值滤波和中值滤波对图片进行处理。要选择3X3,5X5,7X7的窗口分别进行滤波。程序:I=imread('图片1.png'); J1=imnoise(I,'salt & pepper',0.02); J2=imnoise(I,'ga
5、ussian',0,0.01); figure(1);subplot(221),imshow(I),title('原图像');subplot(222),imshow(J1),title('加入椒盐噪声的图像');subplot(223),imshow(J2),title('加入高斯噪声的图像'); h1=fspecial('average',3,3); h2=fspecial('average',5,3);h3=fspecial('average',7,3); rgb1=imfilter(J
6、1,h1); rgb2=imfilter(J1,h2); rgb3=imfilter(J1,h3); rgb4=imfilter(J2,h1); rgb5=imfilter(J2,h2); rgb6=imfilter(J2,h3); figure(2); subplot(241),imshow(J1),title('加入椒盐噪声的图像');subplot(242),imshow(rgb1),title('(3*3窗口)');subplot(243),imshow(rgb2),title('(5*5窗口)');subplot(244),imshow
7、(rgb3),title('(7*7窗口)'); subplot(245),imshow(J2),title('加入高斯噪声的图像');subplot(246),imshow(rgb4),title('(3*3窗口)');subplot(247),imshow(rgb5),title('(5*5窗口)');subplot(248),imshow(rgb6),title('(7*7窗口)');L1=medfilt2(J1,3 3);L2=medfilt2(J1,5 5);L3=medfilt2(J1,7 7);L4=
8、medfilt2(J2,3 3);L5=medfilt2(J2,5 5);L6=medfilt2(J2,7 7); figure(3); subplot(241),imshow(J1),title('加入椒盐噪声的图像');subplot(242),imshow(L1),title('(3*3窗口)');subplot(243),imshow(L2),title('(5*5窗口)');subplot(244),imshow(L3),title('(7*7窗口)'); subplot(245),imshow(J2),title(
9、39;加入高斯噪声的图像');subplot(246),imshow(L4),title('(3*3窗口)');subplot(247),imshow(L5),title('(5*5窗口)');subplot(248),imshow(L6),title('(7*7窗口)');程序运行结果如下图1,图2,图3.图1对图片加入椒盐噪声效果和加入高斯噪声的效果图2 用均值滤波(选用不同窗口)分别对加入椒盐噪声的图像和加入高斯噪声的图像的处理效果图3用中值滤波(选用不同窗口)分别对加入椒盐噪声的图像和加入高斯噪声的图像的处理效果第4题:对第3题中
10、的图加椒盐、高斯噪声后做傅里叶变换,看看频域图的差别。程序:I=imread('图片1.png'); J1=imnoise(I,'salt & pepper',0.02); J2=imnoise(I,'gaussian',0,0.01); A1=fftshift(I);A2=fftshift(J1);A3=fftshift(J2);B1=fft2(A1);B2=fft2(A2);B3=fft2(A3);figure(1);subplot(321),imshow(I),title('原图像');subplot(323),im
11、show(J1),title('加入椒盐噪声');subplot(325),imshow(J2),title('加入高斯噪声');subplot(322),imshow(B1),title('对原图像fft');subplot(324),imshow(B2),title('对加入椒盐噪声的图像fft');subplot(326),imshow(B3),title('对加入高斯噪声的图像fft');运行程序得到的结果如下图:第5题: 设计一个图像处理的算法分别对下图的湖泊进行计数。首先要用I=imread('
12、11.bmp')函数读取图像。将图像转换成灰度图像,在转换成二值图像。对图像进行中值滤波,并去掉可以忽略的面积白点。经过腐蚀膨胀处理后。并用k1=bwlabel(A2)函数对白点进行计数。程序如下:I=imread('11.bmp');I1=rgb2gray(I);A=im2bw(I1,0.3);%把灰度图像转换成二值图像A=medfilt2(A,1,1); %进行1*1模板中值滤波A1=bwareaopen(A,30);%去掉小面积白点figure(1);imshow(A1);A1=A1;A2=bwareaopen(A1,30);figure(2);imshow(A2
13、);k1=bwlabel(A2);%计数白点a=max(max(k1)figure(3);imshow(I1);figure(4);imshow(A2);运行结果a=29。图1二值化后的图像图2去掉可以忽略的小块的图像图像处理案例基于图形处理的飞机检测目前,在目标检测领域有多种实现方法,如滑动窗口检测法,采用局部梯度特征的SIFT描述子和HOG描述子方法,基于角点检测的目标检测方法,基于模型的Part-based Model方法以及采用多特征组合的MULTIFTR+MOTION、HOGLBP方法等。基于对各种检测方法的了解,本组采用了如下的检测方式:读入图片对图像进行预处理将预处理后的图像进行
14、二值化处理对二值图的连通区域惊醒处理对原图像及二值图进行角点检测标记符合要求的连通区域并打框输出。但是这种方法对于图像质量本身有较高要求,如果图像质量较差,边缘信息过于模糊,则容易在图像处理过程中将其判断为不符合要求项过滤掉,从而造成错检,漏检的情况。在本次检测结果中,我们共检测出目标149个,其中飞机87架,错检62个,漏检飞机8架。就总体而言,多数飞机能够被准确检测出,但是排除伪目标方面仍需要继续改进。检测方法:对飞机目标的检测主要运用了面积和角点两个特征,处理过程中也用到了灰度变化、二值化、滤波、腐蚀、膨胀、开闭运算等图像处理的基本方法,其核心算法是面积检测和角点检测,借助MATLAB强
15、大的运算和处理能力,实现了对图像中飞机目标的检测。方案设计整体流程如下:读入图片: 在处理时发现图片很大,所以把图片分成了四块区域,选择其中一块来处理,来提高效率,为了提高检测的准确性,选择了飞机最多的一块区域,待处理结果达到预定值时,再将此方法应用于整个图片,再根据其他部分的检测结果,对代码进行改进。预处理:检测对象飞机与背景相比是较为明亮的区域,但是在把图片放大的时候会发现飞机的边界并没有想象中的那么明显,于是在预处理时,对图像进行了灰度变换,对图像的对比度加强,运用matlab中的imadjust函数。J = imadjust
16、(I,low_in;high_in,low_out; high_out) 将图像I中的亮度值映射到J中的新值,即将low_in至high_in之间的值映射到low_out至high_out之间的值。low_in 以下与 high_in 以上的值被剪切掉了,也就是说,low_in 以下的值映射到 low_out,high_in 以上的值映射到high_out。它们都可以使用空的矩阵,默认值是0 1。二值化:对预处理后的图像做一个直方图,飞机的亮度在处理后的图像中是偏高的,选择合适的阈值T,用matlab中的Ibw=im2bw(I,T/L);其中T为设定的阈值,L是灰度级,这次处理T取的240,L
17、为256。面积检测: 面积检测主要是分两部分:一是检测出比飞机面积大的区域,二是检测比飞机面积小的区域。具体处理过程中在检测小面积部分时,先检测出面积很小的区域,就是二值图中类似于白点的区域,因为这些点有可能就 在两飞机之间,会对后面的检测带来影响。然后是检测面积较大的区域,在检测之前对图像进行膨胀处理,因为图像中很多不连通的部分,使其连通,但要保证飞机不能和这些区域相连,这样就能在检测大面积区域时把大部分区域都检测出来,保留飞机的部分,膨胀的程度是根据具体检测的结果来选定的,检测出大面积区域后对图像进行腐蚀,再检测小面积区域部分,检测结果如下:腐蚀膨胀可以利用matlan中的函数imdila
18、te(I,C)和R1=imerode(I,C)来完成,其中C为掩膜,选择合适的掩膜能控制腐蚀膨胀的程度。那么如何实现面积的检测呢?二值化后的图像其灰度取值只有0和1,那么求面积就转变为求图像中1的个数,不同连通区域中1的个数就是该连通区域的面积。 0 1 0 0 0 0 1
19、160; 0 0 0 0 0 1 0 0 0 1 1 0
20、160; 0 0 0 1 0 0 0 0 1 0 0 0
21、160; 0 0 1 0 0 0 0 0 0 0 0 0
22、160; 0 1 0 0 0 0 1 0 0 0 0 1
23、160; 0 0 0 0 1 这是随机从二值图中截取的一部分,然后利用matlab中的 L num = bwlabel(I)函数可以实现区分不同的连通区域,其中L是和图像同样大小的矩阵,该矩阵第一个连通区域中的值为1,第二个连通区域中的值为2,依次类推,第k个连通区域的值为k,连通区域的总个数为num。如下是随机截取的L矩阵中的值,表示的就是第71个连通区域。统计出71的
24、个数那么这个区域的面积也就得到了。0 0 0 0 0 00 0 0 0 0 00 71 71 71 71 710 71 71 71 71 7171 71 71 71 71 7171 71 71 71 71 71角点检测:角点没有明确的数学定义,但人们普遍认为角点是二维图像亮度变化剧烈的点或图像边缘曲线上曲率极大值的点,角点是图像的一种
25、重要局部特征。在面积检测后的图中还有和飞机面积大小差不多,但是不是飞机的区域,利用飞机的角点特征来检测面积处理后图中的飞机,具体步骤如下:首先是基于原图角点检测,利用Harris角点提取算法,先建立x,y方向梯度算子,分别对x,y方向进行滤波,之后消除变量Ix、Iy。之后再产生7*7的高斯函数sigma=2,进行高斯滤波后进行角点记录,有角点出现的位置设定其值为1,之后计算图像的最大R值(R = zeros(height,width);),进行窗口大小为3*3的非极大抑制后在角点坐标处标记。然后让原图角点检测结果与面积检测结果相与运算,得到的就是检测面积后的角点。 要基于原图进行角
26、点检测是因为在之前的处理过程中图像的好多角点信息已经丢失,尤其是在二值化和腐蚀膨胀的处理过程中,所以在原图上角点检测能保证角点的准确性。角点检测后的结果返回到一个和图像同样大小的矩阵中,在角点的位置用1来表示,统计角点的个数其实就是统计返回的矩阵中该图像连通区域位置部分1的个数。将符合角点要求的连通区域保留下来,即去除伪目标,我们将角点个数在3-9个的连通区域保留下来作为检测到的目标区域。 具体实现,首先要把基于原图角点检测后的的结果与面积检测的结果进行与运算,将得到的角点的矩阵与面积检测后二值图像对应点的值相乘得到的新的角点矩阵,然后求出每个连通区域的角点数目。求每个连通区域的角
27、点个数核心代码为:count=zeros(1,num); for i=1:h for j=1:w for k=1:num if (L(i,j)=k)&&(I_jiaodian(i,j)=1) count(
28、k)=count(k)+1; else count(k)=count(k); end end end end将求得的角点数目存在count矩阵
29、中,再后续处理只需限制角点个数就可以了。标记输出:在进行标记输出之前我们又对图像进行了一些处理,由于图像中还有一些非目标区域存在,这些区域的面积与角点个数均与飞机相似,于是进一步限制了面积,处理前先腐蚀处理,使飞机还原到检测前的大小(因为之前进行过膨胀处理),之后再滤除区域面积大于500的连通区域,然后对剩余的连通区域进行标记,并输出图像。用matlab中的函数status=regionprops(l,'BoundingBox')可以实现连通区域的标记。输出结果如下: 不难发现在图中漏检较少,错检较多,因为我们选择的飞机特征有限,所以对于满足面积和角点要求
30、的而非飞机的部分不能识别,所以错检的较多,如果对更多的特征进行提取,可以进一步减少错检。结果与讨论:在本次检测结果中,我们共检测出目标149(由matlab中的num可以得到)个,其中飞机87架,错检62个,漏检飞机8架。就总体而言,多数飞机能够被准确检测出,但是排除伪目标方面仍需要继续改进。检测结果表明,我们所采用的检测方法还有较高的修改与提升空间。在进行预处理时,我们首先直接对图像进行灰度变换,然后直接进行二值化,后面的处理主要是基于面积和角点。 &
31、#160; 限制连通区域的面积时,面积筛选的一个难点是阈值的选择,因为飞机本身有大的也有小的,而且面积也很难确定,因此在筛选过程中我们采取了多次筛选,首先将面积小于一定值的部分全部滤除,之后再将面积大于阈值的部分滤除,处理过程中结合膨胀、腐蚀、开、闭运算,实现了对面积的检测。处理后还有大量的非目标区域但是面积接近的区域既为目标。所以还需要根据角点个数来去除非目标部分。我们主要采取了Harris角点检测与限制连通区域面积的方法来进
32、行检测与去除伪目标,但经处理后的图像仍有较多区域的特征与飞机的特征接近或相同,所以这类伪目标难以去除,造成错检。在此基础上如果能提取到更多的飞机的信息,就可以进一步降低错检,提高准确度。其次存在的的问题还有代码的优化问题,运行效率较低,处理的速度有待提高。中间运行结果:二值化后的图像 角点检测结果连同区域中角点个数符合要求的图像 检测结果程序:I = imread('detec.TIF'); % I = double(I); figure(1),imshow(I);title('原图');%imshow(det);I=imadjust(I,0.8 1,);fig
33、ure(2),imshow(I);title('灰度变换后');figure(3),imhist(I);title('灰度图直方图'); Ibw=im2bw(I,0.94); %figure(4),imshow(Ibw);title('二值化后的图');I=Ibw;L num = bwlabel(I);for i=1:num if (numel(find(L=i) < 20 ) I(L=i) = 0; endendfigure(4),imshow(I);title('二值化后的图');%膨胀C=strel('squa
34、re',6);R2=imdilate(I,C);figure(5),imshow(R2);title('膨胀后的图');I=R2;% C=strel('square',3);% R2=imdilate(I,C);% figure(6),imshow(R2);title('膨胀后的图');% I=R2;L num = bwlabel(I);for i=1:num if (numel(find(L=i) > 1500 ) I(L=i) = 0; endend% I=im2bw(L); figure(7),imshow(I);title(
35、'dayu1500') C=strel('arbitrary',eye(2);R1=imerode(I,C);% figure(14),imshow(R1);title('腐蚀后的图');I=R1;% C=strel('arbitrary',eye(3);% R1=imerode(I,C);% figure(8),imshow(R1);title('腐蚀后的图');% I=R1;L num = bwlabel(I);for i=1:num if (numel(find(L=i) <50 ) I(L=i) =
36、0; endend figure(9),imshow(I);title('xiaoyu50')% imwrite(I,'yucl.TIF');C=strel('arbitrary',eye(2);R1=imerode(I,C);% figure(14),imshow(R1);title('腐蚀后的图');I=R1;A = imread('detec.TIF'); % I = double(I); % figure(1),imshow(I);title('原图');A=imadjust(A,0.1 1
37、,);% A=imread('yuchuli.tif');fmax1=double(max(max(A);%egray的最大值并输出双精度型fmin1=double(min(min(A);%A的最小值并输出双精度型level=(fmax1-(fmax1-fmin1)/3)/255;%获得最佳阈值C=A;figure(10),imshow(C);%imwrite(C,'abc2.tif');ori_im = C; % 读取图像%fx = 5 0 -5;8 0 -8;5 0 -5; % 高斯函数一阶微分,x方向(用于改进的Harris角点提取算法)fx = -2 -
38、1 0 1 2; % x方向梯度算子(用于Harris角点提取算法)Ix = filter2(fx,ori_im); % x方向滤波%fy = 5 8 5;0 0 0;-5 -8 -5; % 高斯函数一阶微分,y方向(用于改进的Harris角点提取算法)fy = -2;-1;0;1;2; % y方向梯度算子(用于Harris角点提取算法)Iy = filter2(fy,ori_im); % y方向滤波Ix2 = Ix.2;Iy2 = Iy.2;Ixy = Ix.*Iy;clear Ix; %消除变量clear Iy;h= fspecial('gaussian',7 7,2);
39、% 产生7*7的高斯窗函数,sigma=2Ix2 = filter2(h,Ix2);Iy2 = filter2(h,Iy2);Ixy = filter2(h,Ixy); %分别进行高斯滤波height = size(ori_im,1);width = size(ori_im,2);result = zeros(height,width); % 纪录角点位置,角点处值为1R = zeros(height,width);Rmax = 0; % 图像中最大的R值for i = 1:height for j = 1:width M = Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy2(i,
40、j); % auto correlation matrix R(i,j) = det(M)-0.06*(trace(M)2; % 计算R,求得Rmax if R(i,j) > Rmax Rmax = R(i,j); end; end;end;cnt = 0; %记录角点个数for i = 2:height-1 for j = 2:width-1 % 进行非极大抑制,窗口大小3*3 if R(i,j) > 0.01*Rmax && R(i,j) > R(i-1,j-1) && R(i,j) > R(i-1,j) && R(i
41、,j) > R(i-1,j+1) && R(i,j) > R(i,j-1) && R(i,j) > R(i,j+1) && R(i,j) > R(i+1,j-1) && R(i,j) > R(i+1,j) && R(i,j) > R(i+1,j+1) result(i,j) = 1; cnt = cnt+1; end; end;end;posc, posr = find(result = 1); %角点x,y坐标cnt % 角点个数figure(11),imshow(ori_im);hold on;plot(posr,posc,'r+');y1=result;y2=cnt;r=posr;c=posc;% return;% I=imread('dierbu.TIF');% figure(3),im
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园班级卫生工作制度
- 合作方2026年财务报表审核与反馈函5篇
- 安康学院单招试题及答案
- 项目验收申请审核回复函4篇范本
- 对2026年年度业绩总结的回复函(7篇)
- 智能办公设备远程监测管理手册
- 严防传染病传播筑牢健康防线小学主题班会课件
- 区块链创新项目绩效衡量表
- 高中生物理解题技巧快速掌握指导书
- 反馈产品质量问题的投诉函8篇范本
- 广州市从化区纪委监委公开招考8名合同制纪检监察辅助人员(高频重点提升专题训练)共500题附带答案详解
- DL-T5153-2014火力发电厂厂用电设计技术规程
- 儿童吞咽障碍的康复护理
- 雕刻机说明书
- 货运车辆交通安全讲座课件
- 食品杀菌设备行业营销策略方案
- 事故油池基坑开挖专项施工方案
- 学校供暖托管服务投标方案(技术标)
- 自动化专业(学科)概论课件
- 复发性胰腺炎
- 关于成立项目部安全生产领导小组的通知
评论
0/150
提交评论