MATLAB 数字图像处理

您所在的位置:网站首页 车牌照照片制作 MATLAB 数字图像处理

MATLAB 数字图像处理

2024-07-16 00:16:38| 来源: 网络整理| 查看: 265

文章内容:利用 MATLAB 对图像进行简单处理,包括图像的模糊、锐化、和直方图均衡化;对图像进行边缘检测;并对利用 MATLAB 对图像中的数字提取识别。

目录 1 MATLAB 对图像进行简单处理1.1 模糊、锐化、和直方图均衡化1.1.1 代码1.1.2 运算结果 1.2 边缘检测1.2.1 代码1.2.2 运算结果 2 对图像中的数字提取识别---车牌简单识别2.1 对图像中的数字提取2.1.1 代码2.1.2 运算结果 2.2 对图像中的数字识别2.2.1 代码2.2.2 识别结果 3 总结

实验环境:MATLAB2020 MALTAB2020安装链接:https://mp.weixin.qq.com/s/Yo9VkjJnKB53qEgLb-Wvow

1 MATLAB 对图像进行简单处理 1.1 模糊、锐化、和直方图均衡化 1.1.1 代码 I=imread('E:\Desktop\课程\轨道信号与设备\DZYYT1011.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('均衡化后直方图');

注意:代码第一行的文件目录是我使用的图片的位置,读者需要自己准备好图片并将代码中的目录改掉。

1.1.2 运算结果

此为进行处理的原始图像: 在这里插入图片描述

进行图像灰度化并把图像的大小进行调整为原来的一半,得到图像: 在这里插入图片描述

对图像分别进行均值滤波器模糊、拉普拉斯算子锐化处理,得到的结果如下图: 在这里插入图片描述 在这里插入图片描述

对图像进行直方图均衡化操作,得到的原始图像直方图、均衡化后的图像以及直方图如下所示: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

1.2 边缘检测 1.2.1 代码 I=imread('E:\Desktop\课程\轨道信号与设备\DZYYT1011.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=double(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:m for j=1:n if I2_edge(i,j)>0.15 I2_edge(i,j)=1; else if I2_edge(i,j)>0.06 I2_edge(i,j)=0.5; end end end end figure,imshow(I2_edge),title('边缘增强后的图像'); 1.2.2 运算结果

可以得到Laplace算子处理得到的边缘: 在这里插入图片描述 在这里插入图片描述

利用 Sobel 算子获得的图像的水平和垂直边缘。并得到两个方向的合成图像,它表示图像的综合边缘信息。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 从图中可以看出,图像用 Sobel 算子进行边缘增强后整个图像很暗,为了更清晰地表现图像的轮廓信息,对合成边缘中的边缘像素进行了增强处理,获得最后一幅所示边缘增强的结果,它由 4 个灰度级来表示。

2 对图像中的数字提取识别—车牌简单识别

数字标识部位分割,通过像素位置定位出图像中的数字。

2.1 对图像中的数字提取 2.1.1 代码 I=imread('E:\Desktop\课程\轨道信号与设备\DZYYT1011.JPG'); I1=rgb2gray(I); I1=imresize(I1,1); figure,imshow(I1),title('灰度图像'); I2=im2bw(I1,graythresh(I1)); figure,imshow(I2),title('二值图像'); I3=I2(2294:2330,1859:1964); 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('闭运算的结果'); figure; J1=I4(4:320,29:214); J1=imresize(J1,[312,179]); A=J1;ED_type='disk'; se=strel(ED_type,8); A=imdilate(A,se); subplot(1,5,1),imshow(A),title('第1个数字'); J2=I4(19:330,260:410); J2=imresize(J2,[312,179]); A=J2;ED_type='disk'; se=strel(ED_type,8); A=imdilate(A,se); subplot(1,5,2),imshow(A),title('第2个数字'); J3=I4(22:335,450:635); J3=imresize(J3,[312,179]); A=J3;ED_type='disk'; se=strel(ED_type,8); A=imdilate(A,se); subplot(1,5,3),imshow(A),title('第3个数字'); J4=I4(38:347,683:860); J4=imresize(J4,[312,179]); A=J4;ED_type='disk'; se=strel(ED_type,8); A=imdilate(A,se); subplot(1,5,4),imshow(A),title('第4个数字'); J5=I4(55:363,910:1050); J5=imresize(J5,[312,179]); A=J5;ED_type='disk'; se=strel(ED_type,8); A=imdilate(A,se); subplot(1,5,5),imshow(A),title('第5个数字');

注意:代码中的数字部分特征提取及分别对每个数字的提取时,选取的像素范围需要根据自己的图片中数字的像素位置进行修改。 比如代码中第7行的" I3=I2(2294:2330,1859:1964);"。 指数字部分 I3 在 I2 内的位置范围,其中的四个数据是由两组像素坐标组成,读者可以自己分析四个数据分别对应哪种坐标。

小技巧:在MATLAB生成的图像中可以直接查看某点的像素坐标 点击“数据提示”标志,在图像中点击即可查看该点的坐标。如下图: 在这里插入图片描述

2.1.2 运算结果

通过计算,得到图像的灰度图和二值化图像如下图所示: 在这里插入图片描述 在这里插入图片描述

对具有数字标示的部位进行分割的结果如下图: 在这里插入图片描述

对数字部分区域进行闭运算得到的结果如下图: 在这里插入图片描述

将每个字符分割出来,用二值化表示,对每个数字图像进行膨胀操作,以将修正数字区域的边界毛刺并画出分割的结果得到5个数字的图像如下图: 在这里插入图片描述

2.2 对图像中的数字识别

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

实现不同字符的识别 提前准备好 0-9 十个数字的标准数字模板,寻找与拍摄图片中的数字字体相同的标准模板。 小技巧:可以在 Word 里寻找相似的字体,将数字打出来再放大截屏获取。

比如下面这样的模板: 在这里插入图片描述

2.2.1 代码 B=imread('E:\Desktop\课程\轨道信号与设备\0.jpg'); B=rgb2gray(B); B=imresize(im2bw(B,graythresh(B)),[312,179]); K0=B; B=imread('E:\Desktop\课程\轨道信号与设备\1.jpg'); B=rgb2gray(B); B=imresize(im2bw(B,graythresh(B)),[312,179]); K1=B; B=imread(' E:\Desktop\课程\轨道信号与设备\2.jpg'); B=rgb2gray(B); B=imresize(im2bw(B,graythresh(B)),[312,179]); K2=B; B=imread(' E:\Desktop\课程\轨道信号与设备\3.jpg'); B=rgb2gray(B); B=imresize(im2bw(B,graythresh(B)),[312,179]); K3=B; B=imread(' E:\Desktop\课程\轨道信号与设备\4.jpg'); B=rgb2gray(B); B=imresize(im2bw(B,graythresh(B)),[312,179]); K4=B; B=imread(' E:\Desktop\课程\轨道信号与设备\5.jpg'); B=rgb2gray(B); B=imresize(im2bw(B,graythresh(B)),[312,179]); K5=B; B=imread(' E:\Desktop\课程\轨道信号与设备\6.jpg'); B=rgb2gray(B); B=imresize(im2bw(B,graythresh(B)),[312,179]); K6=B; B=imread(' E:\Desktop\课程\轨道信号与设备\7.jpg'); B=rgb2gray(B); B=imresize(im2bw(B,graythresh(B)),[312,179]); K7=B; B=imread(' E:\Desktop\课程\轨道信号与设备\8.jpg'); B=rgb2gray(B); B=imresize(im2bw(B,graythresh(B)),[312,179]); K8=B; B=imread(' E:\Desktop\课程\轨道信号与设备\9.jpg'); B=rgb2gray(B); B=imresize(im2bw(B,graythresh(B)),[312,179]); K9=B; 2.2.2 识别结果

通过与模板逐个进行相关运算,比较出相关系数最大的字符,即可得到识别结果。

进行相关运算的代码: 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

运算结果: 在这里插入图片描述

相关系数结果比较: 在这里插入图片描述 可以看出,对第一个数字 J1 与十个模版进行逐一进行相关运算,得到他们之间的相关系数数组 K,求出其中相关系数最大的数对应的 K 序号,就可以识别出图片中此数字是几。比如上述程序识别出第一个数字是 6。

用同样的方法可以得到:

k=zeros(1,10); k(1)=corr2(J2,K0); k(2)=corr2(J2,K1); k(3)=corr2(J2,K2); k(4)=corr2(J2,K3); k(5)=corr2(J2,K4); k(6)=corr2(J2,K5); k(7)=corr2(J2,K6); k(8)=corr2(J2,K7); k(9)=corr2(J2,K8); k(10)=corr2(J2,K9); m=max(k); n=find(k==m)-1

运算结果:在这里插入图片描述 相关系数结果比较: 在这里插入图片描述 所以第二个数字为 1。

同理,我们可以识别出其他几个数字分别为:3、0、1。 所以目标图像中的五个数字为:61301。 3 总结

对于图片中的其他字符,比如英文字母、汉字、或者其他符号的识别,其实与上面的数字提取识别大同小异。原理都是类似的,通过像素位置定位提取,再与模板进行相似比较。这样可能需要的模板更多,只适用于工作量比较小的情况,所以对与一些大工程识别,还需要更深入更复杂的解决方法,读者可以关注这方面的现况与发展,继续学习。 文章内容如有错误或疑问,敬请读者斧正。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭