当前位置:文档之家› 数字图像处理大作业

数字图像处理大作业

[HW5][24]SA11009045_张海滨大作业1、行模糊、锐化、和直方图均衡化。

程序:I=imread('E:\研一\数字图像处理\作业\HW5\DSC00003.JPG'); figure,imshow(I),title('原始图像');I1=rgb2gray(I);I1=imresize(I1,0.5);figure,imshow(I1),title('灰度图像');h=ones(5,5)/25;I2=imfilter(I1,h);figure,imshow(I2),title('模糊处理');J=double(I1);h1=fspecial('laplacian');I3=filter2(h1,J);figure,imshow(I3),title('锐化处理');I4 = histeq(I1,256);figure,imhist(I1),title('原图像直方图');figure,imshow(I4),title('均衡化处理');figure,imhist(I4),title('均衡化后直方图');进行运算的结果为:原始图像此为进行处理的原始图像。

进行图像灰度化并把图像的大小进行调整为原来的一半,得到图像:对图像分别进行均值滤波器模糊、拉普拉斯算子锐化处理,得到的结果如下图:方图如下所示。

2、边缘检测,程序:I=imread('F:\研一\数字图像处理\作业\HW5\DSC00003.JPG'); I1=rgb2gray(I);I1=imresize(I1,0.5);J=double(I1);H=[0 1 0;1 -4 1;0 1 0];J=conv2(J,H,'same');J=I1-J;subplot(1,2,1);imshow(I1),title('灰度图像');subplot(1,2,2);imshow(J),title('Laplace算子边缘检测');G1 = [-1 -2 -1;0 0 0;1 2 1];G2 = G1';Iedge=I1;I2x = filter2(G1,Iedge);I2y = filter2(G2,Iedge);I2=abs(I2x+I2y);I22 = mat2gray(I2);figure,imshow(mat2gray(abs(I2x))),title('水平方向边缘')figure,imshow(mat2gray(abs(I2y))),title('垂直方向边缘')figure,imshow(I22),title('合成边缘')IFB=im2bw(I22,0.08);figure,imshow(IFB),title('合成边缘二值图像')[m n]=size(I22);I2_edge=I22;for i=1:mfor j=1:nif I2_edge(i,j)>0.15I2_edge(i,j)=1;else if I2_edge(i,j)>0.06I2_edge(i,j)=0.5;endendendendfigure,imshow(I2_edge),title('边缘增强后的图像');可以得到Laplace 算子处理得到的边缘:灰度图像Laplace 算子边缘检测利用Sobel算子获得的图像的水平和垂直边缘。

并得到两个方向的合成图像,它表示图像的综合边缘信息。

从图中可以看出,图像用Sobel算子进行边缘增强后整个图像很暗,为了更清晰地表现图像的轮廓信息,我对合成边缘中的边缘像素进行了增强处理,获得最后一幅所示边缘增强的结果,它由4个灰度级来表示。

3、数字标识部位分割,程序:I=imread('F:\研一\数字图像处理\作业\HW5\DSC00003.JPG'); I1=rgb2gray(I);I1=imresize(I1,0.5);figure,imshow(I1),title('灰度图像');I2=im2bw(I1,graythresh(I1));figure,imshow(I2),title('二值图像');I3=I2(665:687,1:100);I3=imresize(I3,10);figure,imshow(I3),title('数字部分特征提取');A=I3;ED_type='disk';se=strel(ED_type,12);I4=imclose(A,se);figure,imshow(I4),title('闭运算的结果');J1=I4(40:203,1:143);A=J1;ED_type='disk';se=strel(ED_type,8);A=imdilate(A,se);subplot(1,7,1),imshow(A),title('第1个数字');J2=I4(40:210,144:286);A=J2;ED_type='disk';se=strel(ED_type,8);A=imdilate(A,se);subplot(1,7,2),imshow(A),title('第2个数字');J3=I4(40:210,287:429);A=J3;ED_type='disk';se=strel(ED_type,8);A=imdilate(A,se);subplot(1,7,3),imshow(A),title('第3个数字');J4=I4(40:210,430:572);A=J4;ED_type='disk';se=strel(ED_type,8);A=imdilate(A,se);subplot(1,7,4),imshow(A),title('第4个数字');J5=I4(40:210,573:715);A=J5;ED_type='disk';se=strel(ED_type,8);A=imdilate(A,se);subplot(1,7,5),imshow(A),title('第5个数字');J6=I4(40:210,716:863);A=J6;ED_type='disk';se=strel(ED_type,8);A=imdilate(A,se);subplot(1,7,6),imshow(A),title('第6个数字');J7=I4(40:210,864:1000);A=J7;ED_type='disk';se=strel(ED_type,8);A=imdilate(A,se);subplot(1,7,7),imshow(A),title('第7个数字');通过计算,得到图像的灰度图和二值化图像如下图所示:对具有数字标示的部位进行分割的结果如下图:对数字部分区域进行闭运算得到的结果如下图:将每个字符分割出来,用二值化表示,对每个数字图像进行膨胀操作,以将修正数字区域的边界毛刺并画出分割的结果得到七个数字的图像如下图:4、实现不同字符的识别,程序(此部分接上题程序继续执行):由于拍摄照片时有些照片因为光线等原因,质量很差,故少数几个数字不太标准,或者有一个旋转角度。

通过对0-9十个数字进行拍照获得的标准数字模板(如下图)。

通过对每个提取的数字与模版进行相关运算,得到它们之间的相关系数,然后对数字进行判断识别。

J1=imresize(J1,[171,143]);J6=imresize(J6,[171,143]);J7=imresize(J7,[171,143]);B=imread('F:\研一\数字图像处理\作业\HW5\0.jpg');B=rgb2gray(B);B=imresize(im2bw(B,graythresh(B)),[171,143]);K0=B;B=imread('F:\研一\数字图像处理\作业\HW5\1.jpg');B=rgb2gray(B);B=imresize(im2bw(B,graythresh(B)),[171,143]);K1=B;B=imread('F:\研一\数字图像处理\作业\HW5\2.jpg');B=rgb2gray(B);B=imresize(im2bw(B,graythresh(B)),[171,143]);K2=B;B=imread('F:\研一\数字图像处理\作业\HW5\3.jpg');B=rgb2gray(B);B=imresize(im2bw(B,graythresh(B)),[171,143]);K3=B; 第1个数字第2个数字第3个数字第4个数字第5个数字第6个数字第7个数字B=imread('F:\研一\数字图像处理\作业\HW5\4.jpg'); B=rgb2gray(B);B=imresize(im2bw(B,graythresh(B)),[171,143]); K4=B;B=imread('F:\研一\数字图像处理\作业\HW5\5.jpg'); B=rgb2gray(B);B=imresize(im2bw(B,graythresh(B)),[171,143]); K5=B;B=imread('F:\研一\数字图像处理\作业\HW5\6.jpg'); B=rgb2gray(B);B=imresize(im2bw(B,graythresh(B)),[171,143]); K6=B;B=imread('F:\研一\数字图像处理\作业\HW5\7.jpg'); B=rgb2gray(B);B=imresize(im2bw(B,graythresh(B)),[171,143]); K7=B;B=imread('F:\研一\数字图像处理\作业\HW5\8.jpg'); B=rgb2gray(B);B=imresize(im2bw(B,graythresh(B)),[171,143]); K8=B;B=imread('F:\研一\数字图像处理\作业\HW5\9.jpg'); B=rgb2gray(B);B=imresize(im2bw(B,graythresh(B)),[171,143]); K9=B;k=zeros(1,10);k(1)=corr2(J1,K0);k(2)=corr2(J1,K1);k(3)=corr2(J1,K2);k(4)=corr2(J1,K3);k(5)=corr2(J1,K4);k(6)=corr2(J1,K5);k(7)=corr2(J1,K6);k(8)=corr2(J1,K7);k(9)=corr2(J1,K8);k(10)=corr2(J1,K9);m=max(k);n=find(k==m)-1运算结果:n =5可以看出,对第一个数字J1与十个模版进行逐一进行相关运算,得到他们之间的相关系数数组K,求出其中相关系数最大的数对应的K序号,就可以识别出图片中此数字是几。

相关主题