图像灰度直方图处理

  • 格式: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、 存在问题及分析

程序使用还不是很熟练,很多的函数和代码都没有理解透彻,而且关于算子的程序转换还需要多加练习。