在图像的变换和压缩中,常常用到离散余弦变换(DCT)。DCT变换用于图像的压缩实例。请在测试图像中验证你的结论。请编程实现图像的真彩色增强。通过直方图均衡化的方法实现图像的灰度变换,在测试图像中验证你的结论,分析程序结果。使用常用的滤波器对数字图像进行处理。如均值滤波器、中值滤波器、维纳滤波器等。
对比处理前后的直方图可知,原直方图中在灰度级100左右的值出现的平率很低可近似忽略而经过histeq函数后直方图的分布从0~200出现的频率相近,基本实现直方图的均匀分布;从图片上则体现为变换后的图片颜色分布均匀没有特别黑或特别白的地方。另如果将histeq中的n值改为200(原图的灰度级),直方图的分布则接近为原图(如下图),此一来更好的说明了直方图可以明显直观地改变图像的灰度级。
图像滤波
程序代码:
I=imread('压缩前xiao.jpg');
I=rgb2gray(I);
I=im2double(I);
J=imnoise(I,'gaussian',0,0.005); %加入高斯噪声
%进行均值滤波
h=fspecial('average',3); %fspecial函数用于产生预定义滤波器
在图像的变换和压缩中,常常用到离散余弦变换(DCT)。DCT变换用于图像的压缩实例。请在测试图像中验证你的结论。请编程实现图像的真彩色增强。通过直方图均衡化的方法实现图像的灰度变换,在测试图像中验证你的结论,分析程序结果。使用常用的滤波器对数字图像进行处理。如均值滤波器、中值滤波器、维纳滤波器等。
I2=uint8(round(filter2(h,I))); %filter2函数用于图像滤波,h是滤波参数(均值)
%进行中值滤波
I3=medfilt2(J); %medfilt2函数用于图像的中值滤波
%进行维纳滤波
I4=wiener2(J);%进行一次维纳滤波
I5=wiener2(I4);%进行二次维纳滤波
subplot(2,3,1),imshow(I),title('原图象')
subplot(2,3,2),imshow(J),title('加噪声图象')
subplot(2,3,3),imshow(I2),title('均值滤波后图象')
subplot(2,3,4),imshow(I3),title('中值滤波后图象')
subplot(2,3,5),imshow(I4),title('维纳滤波后图象')
subplot(2,3,6),imshow(I5),title('两次维纳滤波后图象')
实验结果:
结果分析:
从图上对比可看出中值滤波器和维纳滤波器滤除噪声的能力差不多,但中值滤波器对于图片亮度的改变相对于维纳滤波器的小。可以看出维纳滤波器不仅滤除了噪声而且也降低了图片的亮度。二次滤波后噪声更小了。

