图像处理与机器视觉

上传人:ji****72 文档编号:35884548 上传时间:2018-03-22 格式:DOC 页数:17 大小:1.32MB
返回 下载 相关 举报
图像处理与机器视觉_第1页
第1页 / 共17页
图像处理与机器视觉_第2页
第2页 / 共17页
图像处理与机器视觉_第3页
第3页 / 共17页
图像处理与机器视觉_第4页
第4页 / 共17页
图像处理与机器视觉_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《图像处理与机器视觉》由会员分享,可在线阅读,更多相关《图像处理与机器视觉(17页珍藏版)》请在金锄头文库上搜索。

1、图像处理与机器视觉图像处理与机器视觉作作 业业姓名: 学号: 专业: 测试计量技术及仪器 时间:2016 年 4 月作业一:图像增强作业一:图像增强 1、图像灰度变换。 对图像(见图 1)进行对比度拉伸,通过直方图获取灰度分布的最小、最大值。图 1 灰度拉伸算法描述:算法描述:直方图均衡化是灰度变换的一个重要应用,它广泛应用在图像增强处理中。可以产生一幅灰度级分布具有均匀概率密度的图像, 扩展了像素取值的动态范围。由于许多图像的灰度值是非均匀分布的,而且灰度值集中在一个小区间内的图像也是很常见的。直方图均衡化就是一种通过重新均匀地分布各灰度值来增强图像对比度的方法。直方图均衡化处理是以累积分布

2、函数 (Cumulative Distri-bution Function- CDF ) 为基础的直方图修改法。直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将一已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像。源程序:源程序:clear;clc;close; I=imread(E:学习图像处理与机器视觉灰度变换.bmp);%读取图像 m,n,o=size(I); grayPic=rgb2gray(I); figure,imshow(I); figure,imshow(grayPic); gp=zeros(1,256); %计算各灰度出现的概率f

3、or i=1:256 gp(i)=length(find(grayPic=(i-1)/(m*n); end figure,bar(0:255,gp); title(原图像直方图); xlabel(灰度值); ylabel(出现概率); newGp=zeros(1,256); %计算新的各灰度出现的概率S1=zeros(1,256); S2=zeros(1,256); tmp=0; for i=1:256 tmp=tmp+gp(i); S1(i)=tmp; S2(i)=round(S1(i)*256); end for i=1:256 newGp(i)=sum(gp(find(S2=i); en

4、d figure,bar(0:255,newGp); title(均衡化后的直方图); xlabel(灰度值); ylabel(出现概率); newGrayPic=grayPic; %填充各像素点新的灰度值for i=1:256 newGrayPic(find(grayPic=(i-1)=S2(i); end figure,imshow(newGrayPic); 处理结果及分析:处理结果及分析:运行以上代码后,matlab出来的图像如下图1.1和图1.2所示:图1.1 原图像及其直方图图 1.2 直方图均衡化后的图像及其直方图从上图中可以看出,图像灰度的最大值为 250,最小为 0,用直方图均

5、衡化后,图像的直方图的灰度间隔被拉大了,均衡化的图像的一些细节显示了出来,这有利于图像的分析和识别。直方图均衡化就是通过变换函数 histeq 将原图的直方图调整为具有“平坦”倾向的直方图,然后用均衡直方图校正图像。2、 (选作)设计 K 近邻均值(中值)滤波器,给出图像(见图)处理结果。 1) 以待处理像素为中心,作一个 m*m 的作用模板。 2) 在模板中,选择 K 个与待处理像素的灰度差为最小的像素。 3) 将这 K 个像素的灰度均值(中值)替换掉原来的像素值。图 2 图像滤波算法描述:算法描述:邻近均值滤波,即中值滤波(Median filtering)是一种非常有用的非线性信号处理方

6、法,在一定程度上可以克服采用诸如邻域均值滤波等线性低通滤波器消除噪声时,会将图像边缘模糊掉的缺点。中值滤波尤其对图像中的脉冲噪声、扫描噪声等能有良好的去除效果,但是对含有过多细节的图像,处理效果一般不好。中值滤波器根据器计算方法,可以称为非线性滤波器中的排序统计滤波器,它不是简单的加权求和,而是先把邻域像素按灰度级进行排序,然后再选择该组的中值作为模板输出结果。由于中值滤波在算法设计上使与周围像素灰度级相差较大的点处理后能和周围的像素值比较接近,因此可以衰减随机噪声,尤其是脉冲噪声等。但由于不是简单的取均值,因此产生的模糊要少得多。图 2.1 为中值滤波器得一维应用示例,其中图(a)为一叠加有

7、 1/4 采样频率正弦震荡得离散信号序列,在 3 点邻域中进行中值滤波,在得到得处理结果(b)中,完全消除了正弦波的干扰,而且保留了边界。(a) (b)图 2.1 中值滤波中值滤波由于需要对邻域所有像素按灰度级进行排序之后得到模板输出结果,因此在计算速度上要比模板卷积慢。为了加快处理速度,在程序设计时采用“冒泡”排序法排序。选用函数 medfilt2,b=medfilt2(a,m,n);b 是中值滤波后的图象矩阵,a 是原图矩阵,m 和 n 是处理模版大小,默认 33源源程序:程序:clear;clc;close; %medfilt2 函数 Y=imread(E:学习图像处理与机器视觉图像滤波

8、.bmp);%读取图像H=medfilt2(Y,2 2); subplot(1,2,1),imshow(Y),title(原图) subplot(1,2,2),imshow(H),title(中值滤波后的效果图);figure,imshow(newGrayPic); 处理结果及分析:处理结果及分析: 当选 22 时,处理结果为:图 2.2 中值滤波 2*2 效果图 当选 33 时,处理结果为:图 2.3 中值滤波 3*3 效果图当选 77 时,处理结果为:图 2.4 中值滤波 7*7 效果图 由上可知,经过中值滤波后图像变得更加清晰可见。并且函数 medfilt2 中, M*M 选取并不是越大

9、越好,也不是越小越好,从而要选取适当的值。用 matlab 编写的中值滤波算法程序: clear;clc;close; X=imread(E:学习图像处理与机器视觉图像滤波.bmp ); Y=uint8(X); %把 x 转换成 8 位的无符号整形数据。 U1 = imnoise(Y,salt subplot(1,2,1),imshow(uint8(U1),title(原图); p=size(U1); x1=double(U1); x2=x1; n=3; %模板 n*n. for i=1:p(1)-n+1for j=1:p(2)-n+1c=x1(i:i+(n-1),j:j+(n-1); %取出

10、 x1 中从(i,j)开始的 n 行 n 列元素,即模板(nn 的)e=c(1,:); %是 c 矩阵的第一行for u=2:ne=e,c(u,:); %将 c 矩阵变为一个行矩阵 endmm=median(e); %mm 是中值x2(i+(n-1)/2,j+(n-1)/2)=mm; %将模板各元素的中值赋给模板中心位置的元素end end %未被赋值的元素取原值 D=uint8(x2); subplot(1,2,2),imshow(uint8(D),title(中值滤波后的效果图); 处理结果如下图:图 2.5 中值滤波处理效果图 从处理结果看出,用 matlab 函数medfilt2 和自

11、己编写的程序,能达到同样的 效果。作业二:图像变换作业二:图像变换 1、 对图像(见图)用 FFT 算法从空域变换到频域;显示幅度频谱,使图像能 量中心移到几何中心。将图像旋转 450,再显示幅度频谱。图 3 图像变换 算法描述:算法描述:傅立叶变换是数字图像处理中应用最广的一种变换,其中图像增强、图像复原和图像分析与描述等,每一类处理方法都要用到图像变换,尤其是图像的傅立叶变换。图像的频域增强,常用的图像增强技术可分为基于空域和基于变换域的两类方法。最常用的变换域是频域空间。在频域空间,图像的信息表现为不同频率分量的组合。如果能让某个范围内的分量或某些频率的分量受到抑制而让其他分量不受影响,

12、就可以改变输出图像的频率分布,达到不同的增强目的。频域增强的工作流程:傅立叶变换傅立叶变换滤波器滤波器傅立叶反变换傅立叶反变换 ),(vuH),(vuF),(vuG),(yxg),(yxf频域空间的增强方法对应的三个步骤:(1) 将图像 f(x,y)从图像空间转换到频域空间,得到 F(u,v);(2) 在频域空间中通过不同的滤波函数 H(u,v)对图像进行不同的增强,得到G(u,v)(注:不同的滤波器滤除的频率和保留的频率不同,因而可获得不同的增强效果) ;(3) 将增强后的图像再从频域空间转换到图像空间,得到图像 g(x,y)。将图像由空域转换到频域,理论基础是傅里叶变换,要在数字图像处理中

13、应用傅立叶变换,还需要解决两个问题:一是在数学中进行傅立叶变换的 f(x)为连续(模拟)信号,而计算机处理的是数字信号(图像数据) ;二是数学上采用无穷大概念,而计算机只能进行有限次计算。通常,将受这种限制的傅立叶变换称为离散傅立叶变换(Discrete Fourier Transform,DFT)。设f(x)|f(0),f(1), f(2), f(N-1)为一维信号 f(x)的 N 个抽样,其离散傅立叶变换对为:式中:x,u=0, 1, 2, , N1。旋转图像函数 imrotate,如 J = imrotate(I,45,bilinear,crop); %双线性插值法旋转图像 45 度,并

14、剪切图像和原图像大小一致。源程序:源程序:clc;clear;close;I,map=imread(E:学习图像处理与机器视觉图像变换.bmp);subplot(2,2,1),imshow(I),title(图像变换原图);J1=imrotate(I,45,bilinear,crop); %双线性插值法旋转图像 60 度,并剪切图像和原图像大小一致subplot(2,2,3),imshow(J1),title(旋转图像 45 度);J2=fft2(I); %fft2 函数用于数字图像的二维傅立叶变换K1=fftshift(abs(J2); %频谱中心化RR1=real(K1); %取傅立叶变换

15、的实部II1=imag(K1); %取傅立叶变换的虚部A1=sqrt(RR1.2+II1.2); %计算频谱幅值A1=(A1-min(min(A1)/(max(max(A1)-min(min(A1)*225; %归一化,max(a)求矩阵 a中列最大,max(max(a)表示求 a 中最大元素。subplot(2,2,2),imshow(A1),title(原图像的幅度频谱); %显示原图像的频谱J3=fft2(J1); %fft2 函数用于数字图像的二维傅立叶变换K2=fftshift(abs(J3); %频谱中心化RR2=real(K2); %取傅立叶变换的实部II2=imag(K2); %取傅立叶变换的虚部A2=sqrt(RR2.2+II2.2); %计算频谱幅值A2=(A2-min(min(A2)/(max(max(A2)-min(min(A2)*225; %归一化subplot(2,2,4),imshow(A2),title(旋转后图像的幅度频谱); %显示旋转图像的频谱NuxjNxNuxjNx euFNxfuFFexfuFxfF

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号