彩色图像处理.docx
《彩色图像处理.docx》由会员分享,可在线阅读,更多相关《彩色图像处理.docx(11页珍藏版)》请在冰豆网上搜索。
![彩色图像处理.docx](https://file1.bdocx.com/fileroot1/2023-2/6/eb90eacf-f570-405c-9e59-e2456322b702/eb90eacf-f570-405c-9e59-e2456322b7021.gif)
彩色图像处理
关于彩色图像
处理的认识与探究
李时铨
安徽大学
信息与计算科学
摘要
随着信息技术的发展,彩色图像的应用也更加广泛。
与灰度图像相比,彩色图像携带了更多的可视化信息。
彩色图像处理已成为一个重要的研究领域。
由于彩色图像中颜色表示的复杂性,本作依照经典RGB模型来进行多重灰度图像处理再合成,而现代彩色图像的处理方法早已是无穷无尽,可见彩色信息在数字图像处理中正得到更大的关注。
灰度图像中的去噪、退化复原、压缩在经过历史的变革以及有层出不穷的办法应对,但是如何同样的作用于彩色图像,想必是有困难的。
一副图有许许多多像素的同时,每个像素还带着自己的色彩。
基于RGB模型,不难理解,每一幅彩图都是由几张看似灰度的图像叠加形成(基于三原色原理);同时为了色彩更加丰富多变,各种模型体系也崭露头角。
想必全彩色图像处理是基于伪彩色图像处理,伪彩色处理试图将灰度分层,而全彩色处理试图将色彩分层,给予灰度图一样的“待遇”,完成各项操作之后合成回原来的色彩。
同时也不难理解,彩色图像的像素点,是一个个向量,这对未来直接处理彩色图像有着莫大的帮助与延伸。
关键词:
彩色图像
均值滤波去噪
LucyRichardson图像复原
图像DCT变换与反变换
Abstract
Withthedevelopmentofinformationtechnology,theapplicationofcolorimageisalsomorewidely.Comparedwiththegrayimage,colorimagescarrymorevisualimageprocessinghasbecomeanimportantareaofofthecomplexityofthecolorinthecolorimagesaid,accordingtotheclassicalRGBmodeltomakeamultiplegrayimageprocessingandsynthesis,however,hemoderncolorimageprocessingmethodisendless,visiblecolorinformationindigitalimageprocessingisofgreaterconcern.
Inthegrayimagenoisereduction,degradationofrecoveryandcompressionafterhistoricalchangeandthereareendlesswaytodealwith,buthowalsoappliedtocolorimages,mostpresumablyisaremany,manypixelsofafigureatthesametime,eachpixelwithitsownontheRGBmodel,itiseasytounderstand,everycolorimageisformedbysomeseeminglygray-scaleimageoverlay;Atthesametimeinordertomorecolorfulandchangeable,allsortsofmodelsystemisemerging.
Musthavefullcolorimageprocessingisbasedonpseudocolorimageprocessing,andpseudocolorprocessingtogray-scalestratification,andfullcolorprocessingtocolorlayer,givingthe"treatment",likethegray-scalecompletesynthesisofbacktotheoriginalcoloraftertheisnotdifficulttounderstandatthesametime,colorimagepixels,isavector,thisdirectlywithcolorimagesforthefuturewithagreatdealofhelpandextension.
KeyWords:
Colorimageprocessing
Noisereductionwithaveragefiltering
ImagerestorationbyLucyRichardson
ImageDCTtransformandinversetransform
【
【
§
§
§
§
1彩色图像概论
RGB彩色模型
根据三基色原理,用基色光单位来表示光的量,则在RGB彩色模型中,任意色光F都可以用R、G、B三色不同分量的相加混合而成:
F=r[R]+g[G]+b[B]
自然界中任何一种色光都可由R、G、B三基色按不同的比例相加混合而成,当三基色分量都为0(最弱)时混合为黑色光;当三基色分量都为1(最强)时混合为白色光。
任意一种颜色F是这个立方体中的一个点,R、G、B中的任意一个系数的改变都会改变F的坐标值,也意味着改变了F的色值。
HSI彩色模型
HSI彩色模型从人的视觉系统出发,用H代表色相(Hue)、用S代表饱和度(Saturation)
和I代表亮度(Intensity)来描述色彩。
由于人的视觉对亮度的敏感程度远强于对颜色浓淡的敏感程度,为了便于色彩处理和识别,人的视觉系统经常采用HSI色彩空间,它比RGB色彩空间更符合人的视觉特性。
在图像处理和计算机视觉中大量算法都可在HSI色彩空间中方便地使用,它们可以分开处理而且是相互独立的。
因此,HSI色彩空间可以大大简化图像分析和处理的工作量。
色相(Hue):
指物体传导或反射的波长。
更常见的是以颜色如蓝色、黄色或紫色来辨识,取0到360度的数值来衡量。
饱和度(Saturation):
又称色度,是指色彩的强度或纯度。
饱和度代表灰色与色调的比例,并以0%(灰色)到100%(完全饱和)来衡量。
亮度(Intensity):
是指颜色的相对明暗度,通常以0%(黑色)到100%(白色)的百分比来衡量。
伪彩色与全彩色处理
伪彩色处理是基于一种指定的规则对灰度值赋以颜色的处理。
灰度图像多数是8位位深,256级灰度,人眼对此尚有较高的分辨力,但对于某些特殊领域灰度级更高的一些专用灰度图像,尤其在图像像素灰度相差不大的情况下,人眼分辨能力大为减弱,远不如彩色图像。
所以,有必要把一些灰度图像转换成彩色图像,同时使得彩色图像的颜色对应于不同的灰度,只要灰度有差别,色彩即有差别。
同样的,究竟如何处理彩色图像全彩色图像处理方法分为两种。
第一类是分别处理每一幅分量图像,这与伪彩色处理运用了类似的方法,分别处理然后再合成。
第二类是直接处理彩色像素。
全彩色图像至少有3个分量,所以彩色像素,实际上是向量。
伪彩色处理中有灰度分层,同样的全彩色处理中有彩色分层,因此伪彩色处理对全彩色处理的启发是相当大的,本次的实验操作也将在处理灰度图像的操作上进行提升与修改。
2彩色图像去噪实现
图像去噪典型算法
图像信号在产生、传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:
高斯噪声(主要由阻性元器件内部产生)、椒盐噪声(主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生的泊松噪声)等;
目前比较经典的图像去噪算法主要有以下三种:
均值滤波算法:
也称线性滤波,主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。
有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。
中值滤波:
基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。
中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。
其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。
很容易自适应化。
Wiener维纳滤波:
使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。
对于去除高斯噪声效果明显。
matlab实现彩色图像去噪
思路:
分成RGB三个图分开降噪完再合成。
代码如下:
>>f=imread('');
>>J=imnoise(f,'gaussian',0,;%加高斯噪声
>>Jr=J(:
:
1);
>>Jg=J(:
:
2);
>>Jb=J(:
:
3);%提出3个分矩阵rgb
>>k1=floor(3/2)+1;
k2=floor(3/2)+1;
X=Jr;
[M,N]=size(X);
uint8Y=zeros(M,N);
funBox=zeros(3,3);
fori=1:
M-3
forj=1:
N-3
funBox=X(i:
i+3,j:
j+3);
s=sum(funBox(:
));
h=s/9;
Y(i+k1,j+k2)=h;
end;
end;
Y=Y/255;%均值滤波器移动平均法
Yr=Y;%将滤波后的Jr图存进Yr
>>k1=floor(3/2)+1;k2=floor(3/2)+1;X=Jg;[M,N]=size(X);
uint8Y=zeros(M,N);funBox=zeros(3,3);
fori=1:
M-3
forj=1:
N-3
funBox=X(i:
i+3,j:
j+3);s=sum(funBox(:
));h=s/9;Y(i+k1,j+k2)=h;
end;
end;
Y=Y/255;Yg=Y;%同理将Jg用移动平均法算一遍
>>k1=floor(3/2)+1;k2=floor(3/2)+1;X=Jb;[M,N]=size(X);
uint8Y=zeros(M,N);funBox=zeros(3,3);
fori=1:
M-3
forj=1:
N-3
funBox=X(i:
i+3,j:
j+3);s=sum(funBox(:
));h=s/9;Y(i+k1,j+k2)=h;
end;
end;
Y=Y/255;Yb=Y;
>>K(:
:
1)=Yr;
>>K(:
:
2)=Yg;
>>K(:
:
3)=Yb;%将3个分矩阵再次合成
对比图如下:
3彩色图像复原实现
图像复原相关算法
图像复原是图像处理中的一个重要问题,对于改善图像质量具有重要的意义。
解决该问题的关键是对图像的退化过程建立相应的数学模型,然后通过求解该逆问题获得图像的复原模型并对原始图像进行合理估计。
图像退化的典型表现是图像出现模糊、失真,出现附加噪声等。
早期的复原方法有:
非邻域滤波法,最近邻域滤波法以及效果较好的维纳滤波和最小二乘滤波等。
维纳滤波法是由Wiener首先提出的,应用于一维信号处理,取得了很好的效果。
之后,维纳滤波法被用于二维信号处理,也取得了不错的效果,尤其在图像复原领域,由于维纳滤波计算量小,复原效果好,从而得到了广泛的应用和发展。
Lucy-Richardson算法是一种迭代非线性复原算法,它是从最大似然公式印出来的,图像用泊松分布加以模型化的。
该算法考虑到了物体的先验信息,无需模糊图像的噪声信息,适用于线性和非线性成像模型,解具有唯一性。
在MATLAB中,L-R算法附加了一些改进,可以在多次迭代过于逼近噪声易产生错误信息斑点的情况下,使用参数来控制收敛次数,使每次过程中结果图像和原始图像的每个相应局部的背离程度的灰度值在阈值内。
matlab实现彩色图像复原
代码如下:
>>j=imread('C:
\Users\Administrator\Desktop\');
>>subplot(131);
>>imshow(j);title('原图像');
>>len=20;theta=30;
>>psf=fspecial('motion',len,theta);
>>j1=imfilter(j,psf,'circular','conv');
>>subplot(132);
>>imshow(j1);title('PSF模糊图像');
>>lucy=deconvlucy(j1,psf);
>>subplot(133),imshow(lucy);
>>title('Lucyrichardson图像复原');
L-R算法假设图像服从Possion分布,采用最大似然估计进行估算,其迭代方程为:
【函数】
deconvlucy
【源代码】
J=DECONVLUCY(I,PSF)
deconvolvesimageIusingLucy-Richardsonalgorithm,returningdeblurredimageJ.
TheassumptionisthattheimageIwascreatedbyconvolvingatrueimagewithapoint-spreadfunctionPSFandpossiblybyaddingnoise.
J=DECONVLUCY(I,PSF,NUMIT)
J=DECONVLUCY(I,PSF,NUMIT,DAMPAR)
J=DECONVLUCY(I,PSF,NUMIT,DAMPAR,WEIGHT)
J=DECONVLUCY(I,PSF,NUMIT,DAMPAR,WEIGHT,READOUT)
J=DECONVLUCY(I,PSF,NUMIT,DAMPAR,WEIGHT,READOUT,SUBSMPL),where
4彩色图像压缩实现
图像压缩算法
图像压缩的目的在于以较少的数据来表示图像以节约存储费用,或者传输时间和费用。
在不影响或者少影响图像质量的前提下,尽量设法减少图像数据的数据量。
首要任务就是去掉各种冗余数据。
哈夫曼树即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。
在计算机信息处理中,“哈夫曼编码”是一种一致性编码法,又称"熵编码法",用于数据的无损耗压缩。
算术压缩和霍夫曼编码压缩方法类似,只不过比霍夫曼编码更加有效。
算术压缩适合于相同的重复序列组成的文件,算术压缩接近压缩理论的理论极限。
这种方法是将不同的序列映像到0至1之间的区域内,该区域表示成可变精度(位数)的二进制小数,越不常见的数据要求精度越高,这种方法比较复杂,因而不太常用。
变换编码进行编码时,首先将图像划分成规定大小的像块,一个n*n的像块由相邻的n行,每行n个相邻的像素组成,划分像块的工作用存储器很易实现。
然后将一个像块的2n个样值同时由存储器取出,进行正交变换。
经过反变换重新得到2n个空间域的图像样值(但是含有量化误差),再将由此得到的解码像块拼接成重建图像。
matlab实现彩色图像压缩
代码如下:
>>X=imread('');
>>I=X(:
:
1);
>>I=im2double(I);
>>T=dctmtx(8);%离散余弦变换矩阵
>>B=blkproc(I,[88],'P1*x*P2',T,T');
>>mask=[11110000
11100000
11000000
10000000
00000000
00000000
00000000
00000000];
>>B2=blkproc(B,[88],'P1.*x',mask);%数据压缩,丢弃右下角高频数据
>>Yr=blkproc(B2,[88],'P1*x*P2',T',T);%进行DCT反变换,得到压缩后的图像
>>subplot(1,2,1);imshow(I);title('原red层')
subplot(1,2,2);imshow(Yr);title('压缩后的red层');
同样的循环操作第二第三次
>>I=X(:
:
2);
>>I=im2double(I);
>>B=blkproc(I,[88],'P1*x*P2',T,T');
>>B2=blkproc(B,[88],'P1.*x',mask);
>>Yg=blkproc(B2,[88],'P1*x*P2',T',T);
>>subplot(1,2,1);imshow(I);title('原green层')
subplot(1,2,2);imshow(Yr);title('压缩后的green层');
>>I=X(:
:
3);
>>I=im2double(I);
>>B=blkproc(I,[88],'P1*x*P2',T,T');
>>B2=blkproc(B,[88],'P1.*x',mask);
>>Yb=blkproc(B2,[88],'P1*x*P2',T',T);
>>subplot(1,2,1);imshow(I);title('原blue层')
subplot(1,2,2);imshow(Yb);title('压缩后的blue层');
>>K(:
:
1)=Yr;K(:
:
2)=Yg;K(:
:
3)=Yb;
>>subplot(1,2,1);imshow(X);title('原图')
subplot(1,2,2);imshow(K);title('分别压缩后合成')
像素点无变化我们来看看文件容量大小
可见,DCT变化反变化对图像质量保留较高,纯压缩并不是很有效。
【参考文献】
1.阮秋琦阮宇智等译.数字图像处理(第三版).电子工业出版社,
2...东北大学,2005
3..的blog,
4.,,..,2012,34(6):
26-30
5.朱延俊.常用图像去模糊算法分析与对比.西安电子科技大学,
6.朱剑英..南京理工大学,