matlab中对比度增强函数imadjust

imadjust使用语法如下:

J = imadjust(I,[low_in high_in],[low_out high_out],gamma)

该函数的作用是把原始图像中的小于low_in的像素值映射到low_out。把大于high_in的像素值映射到high_out。

gamma是其他像素点的映射参数。当gamma=1时,表示线性变换。当gamma>1时,变换函数是一个凸函数,会增强暗色输出。当gamma<1时,变换函数是一个凹函数,会增强亮知值输出。

imadjust的使用方法,我们直接用一个脚本来示例。

I = imread('../picture/bule_sky.jpg');
% M=stretchlim(I);
J1 = imadjust(I,[0.1 1],[]);
J2 = imadjust(I,[0.3 1],[]);
J3 = imadjust(I,[0.5 1],[]);
subplot(2,3,1);
imshow(J1);
subplot(2,3,2);
imshow(J2);
subplot(2,3,3);
imshow(J3);
J4 = imadjust(I,[0 0.5],[]);
J5 = imadjust(I,[0 0.7],[]);
J6 = imadjust(I,[0 0.9],[]);
subplot(2,3,4);
imshow(J4);
subplot(2,3,5);
imshow(J5);
subplot(2,3,6);
imshow(J6);

通过这脚本我们可以看到:

1.J1,J2和J3中图像的对比度逐步变小。这是因为in_low越来越大,那么越来越多小于in_low的像素值被映射成一个值,对比度当然越来越高。

2.J4,J5和J6中图像的对比度会越来越小。因为in_high越来越大,那么越来越多大于in_high的像素值被映射一个值,对比度当然越来越高。

问题,我们怎么调节参数使图片的对比度越来越高呢?

1.把in_low拉到较小的out_low的位置。把in_hight拉到较高的out_hight位置。

2.增大gamma值。

 

你可能感兴趣的:(图像处理,adjust,subplot)