图像灰度直方图处理
- 格式:doc
- 大小:2.57 MB
- 文档页数:6
第15周上机实验报告
学号:912104520120 姓名:鲍春霖
1、 内容
(1)图像线性对比度增强,测试图Fig69.bmp
(2)图像非线性调整(对数,指数),侧视图Fig69.bmp
(3)图像直方图均衡化,测试图Fig61.bmp
2、 原理
1. 图像线性对比度增强程原理
把分界数值定在100,所有0-100的灰度值的点灰度值升为原来的两倍,对于灰度值100-255的点灰度值线性分布于200-255之间,用直角坐标系来表示就是:
2. 图像非线性调整(对数,指数)原理:
将图片进行指数变换的算子是:B(i,j)=C*log(A(i,j)+1),通过这个算子可以对图像进行指数上的变换。其中C是一个常数系数。
指数非线性调整算子:1.1^(C*(A1(i,j)-a))-1,方法同对数非线性调整正好是逆运算关系。其中C也是一个常数。
3. 图像直方图均衡化
通过计算每一个灰度值的像素点个数,进而算出每一个灰度值像素点的分布概率,然后进行直方图均衡的计算。
3、 方法及程序
1. 图像线性对比度增强程序
clear all;
A=imread('D:\Fig69.bmp');
[row,col]=size(A);
A1=double(A);
fmax=max(max(A1));
fmin=min(min(A1));
for i=1:row
for j=1:col
if (A1(i,j)<=100)
B(i,j)=A1(i,j)*2;
else if(A1(i,j)>100&&A1(i,j)<=255)
B(i,j)=(255-200)/(255-100)*(A1(i,j)-100)+200;
end
end
end
end
B=uint8(B);
figure(1);
subplot(1,2,1),imshow(A),title('Ô-ͼ');
subplot(1,2,2),imshow(B),title('ÏßÐԶԱȶÈÔöǿͼ');
figure(2);
subplot(1,2,1),imhist(A),title('Ô-ͼ');
subplot(1,2,2),imhist(B),title('ÏßÐԶԱȶÈÔöǿͼ');
2. 图像非线性调整(对数,指数)
A=imread('D:\Fig69.bmp')
A1=double(A);
C=30;
[row,col]=size(A1);
for i=1:row
for j=1:col
B(i,j)=C*log(A1(i,j)+1);
end
end
subplot(2,2,1),imshow(A),title('Ô-ͼ');
subplot(2,2,2),imshow(B),title('·ÇÏßÐԱ任ºóͼÏñ');
subplot(2,2,3),imhist(A);
subplot(2,2,4),imhist(B);
A=imread('D:\Fig69.bmp')
C=0.8;
a=1;
A1=double(A);
[row,col]=size(A1);
for i=1:row
for j=1:col
B(i,j)=1.1^(C*(A1(i,j)-a))-1;
end
end
subplot(2,2,1),imshow(A),title('Ô-ͼ');
subplot(2,2,2),imshow(B),title('Ö¸Êý±ä»»ºóͼÏñ');
subplot(2,2,3),imhist(A);
subplot(2,2,4),imhist(B);
3. 图像直方图均衡化
%Ö±·½Í¼¾ùºâ»¯
clear all;
I = imread('Fig61.bmp');
[row,col] = size(I);
figure(1)
subplot(2,2,1)
imshow(I)%ÏÔʾÔ-ʼͼÏñ
subplot(2,2,2)
imhist(I)%ÏÔʾÔ-ʼͼÏñÖ±·½Í¼
%½øÐÐÏñËØ»Ò¶Èͳ¼Æ;
s = zeros(1,256);%ͳ¼Æ¸÷»Ò¶ÈÊýÄ¿£¬¹²256¸ö»Ò¶È¼¶
for i = 1:row
for j = 1:col
s(I(i,j) + 1) = s(I(i,j) + 1) + 1;%¶ÔÓ¦»Ò¶ÈÖµÏñËØµãÊýÁ¿Ôö¼ÓÒ»
end
end
%¼ÆËã»Ò¶È·Ö²¼ÃܶÈ
p = zeros(1,256);
for i = 1:256
p(i) = s(i) / (row * col );
end
%¼ÆËãÀÛ¼ÆÖ±·½Í¼·Ö²¼
c = zeros(1,256);
c(1) = p(1);
for i = 2:256
c(i) = c(i - 1) + p(i);
end
%ÀۼƷֲ¼È¡Õû,½«ÆäÊýÖµ¹éÒ»»¯Îª1~256
c = uint8(255 .* c + 0.5);
%¶ÔͼÏñ½øÐоùºâ»¯
for i = 1:row
for j = 1: col
I(i,j) = c(I(i,j)+1);
end
end
subplot(2,2,3)
imshow(I)%ÏÔʾ¾ùºâ»¯ºóµÄͼÏñ
subplot(2,2,4)
imhist(I)%ÏÔÏÔʾ¾ùºâ»¯ºóµÄͼÏñµÄÖ±·½Í¼
4、 结果(截图说明)
第一道:图像线性调整对比度
第二道:图像非线性调整对比度
第三道:图像直方图均衡化
5、 存在问题及分析
程序使用还不是很熟练,很多的函数和代码都没有理解透彻,而且关于算子的程序转换还需要多加练习。