官术网_书友最值得收藏!

Adaptive histogram equalization using adapthisteq

The advantage of adapthisteq is that it splits the image into small rectangular areas called tiles, and enhances the contrast of these areas by adjusting their local histograms. This method is also known as contrast limited adaptive histogram equalization (CLAHE) (Zuiderveld, Karel. Contrast Limited Adaptive Histogram Equalization. Graphic Gems IV. San Diego: Academic Press Professional, 474-485, 1994). Like almost every other MATLAB function, adapthisteq can be used with only one input (the image), with all other parameters set to default values. Such a usage is shown in the following script, in contrast to the histeq result:

img = imread('my_image.bmp');
img_eq = histeq(img);
img_clahe = adapthisteq(img)
subplot(2,3,1),imshow(img),title('Original Image'');
subplot(2,3,2),imshow(img_eq),title('Equalized Image');
subplot(2,3,3),imshow(img_clahe),title('CLAHE Image');
subplot(2,3,4),imhist(img,64),title('Original Image Histogram');
subplot(2,3,5),imhist(img_eq,64),title('Equalized Image Histogram');
subplot(2,3,6),imhist(img_clahe,64),title('CLAHE Image Histogram');

Saving this script as HisteqVsClahe.m and running it, leads to the following result:

As we can see, the CLAHE method leads to a less spread result, which has an apparent positive effect especially on very bright or very dark areas. An even lesser spread histogram result can be acquired if we do not use the default, uniform, or distribution setting. Let's see what the other choices (rayleigh and exponential) look like, by running the following script (ClaheDistributions.m):

img = imread('my_image.bmp');
img_u = adapthisteq(img);
img_r = adapthisteq(img,'Distribution','rayleigh');
img_e = adapthisteq(img,'Distribution','exponential');
subplot(2,3,1),imshow(img_u),title('Uniform distribution');
subplot(2,3,2),imshow(img_r),title('Rayleigh distribution');
subplot(2,3,3),imshow(img_e),title('Exponential distribution');
subplot(2,3,4),imhist(img_u,64),title('Uniform Histogram');
subplot(2,3,5),imhist(img_r,64),title('Rayleigh Histogram');
subplot(2,3,6),imhist(img_e,64),title('ExponentialHistogram');

The resulting images show that the Uniform and Exponential histograms are similar, while the Rayleigh distribution leads to a less spread result:

Until now, we have used functions included in MATLAB toolboxes in conjunction with basic programming techniques in order to accomplish image enhancement. Our work was facilitated by the usage of scripts; however these tools are not fully practical for more demanding tasks. Our life will become a lot easier if we begin to master the art of making custom-made functions.

主站蜘蛛池模板: 牙克石市| 法库县| 兴和县| 辽源市| 前郭尔| 广东省| 洛宁县| 瑞昌市| 宝应县| 岳普湖县| 建水县| 余江县| 临澧县| 张家口市| 长岛县| 镇江市| 柳林县| 汉中市| 大理市| 道孚县| 罗江县| 惠东县| 江山市| 易门县| 柳河县| 铜梁县| 陆川县| 大关县| 上杭县| 西华县| 万安县| 交城县| 泰兴市| 邵东县| 喀喇沁旗| 万宁市| 绥德县| 冀州市| 林甸县| 鹤峰县| 中西区|