調整亮度/對比度
線性函數

結論:如果一幅圖像集中在較暗的區域而導緻圖像偏暗,可以用灰階拉伸功能來擴充(斜率>1)物體的灰階區間以改善圖像;同樣,如果圖像的灰階集中在較亮的區域而導緻圖像偏亮,也可以用灰階拉伸功能來壓縮(斜率<1)物體灰階區間以改善圖像品質。
分段線性函數的作用:實際上是增強了原圖各部分的反差,即增加圖像中感興趣的灰階區域,相對抑制那些不感興趣的灰階區域。
非線性函數
内置函數
Matlab提供了stretchlim()函數,可以自動計算圖像灰階值的最小值和最大值構成的區間,即需調整的範圍。
直方圖
灰階統計直方圖
直方圖修正
直方圖均衡化
直方圖規定化
理想情況下,直方圖均衡化實作了圖像灰階的均衡分布,對提高圖像對比度、提升圖像亮度具有明顯的作用。在實際應用中,有時并不需要圖像的直方圖具有整體的均勻分布,而是希望直方圖與規定要求的直方圖一緻,這就是直方圖規定化。它可以人為地改變原始圖像直方圖的形狀,使其成為某個特定的形狀,是用于産生處理後有特殊直方圖的圖像處理方法。
在Matlab中沒有直接實作直方圖規定化的函數。但是可以通過imhist和histeq兩個函數的結合使用來實作。
I=imread('pout.tif');
subplot(2,2,1),imshow(I);
title('模闆圖像');
subplot(2,2,2),imhist(I);
title('模闆圖像的直方圖');
J=imread('tire.tif');
I_M=imhist(I);
K=histeq(J,I_M);
subplot(2,2,3),imshow(K);
title('規定化後的圖像');
subplot(2,2,4),imhist(K);
彩色圖像點運算
線性/非線性變換
sourceImage=im2double(imread('landscape.jpg'));
J=rgb2hsi(sourceImage);%RGB空間轉換到HSI空間
H=J(:,:,1); %提取色調分量
S=J(:,:,2); %提取飽和度分量
I=J(:,:,3); %提取亮度分量
%利用灰階變換,自動調整亮度分量的灰階範圍
M=stretchlim(I);
I_enhancing1=imadjust(I,M,[0 1],0.4); %亮度增大
enhancingImage1=cat(3,H,S,I_enhancing1);%三分量合成
rgb1=hsi2rgb(enhancingImage1);%HSI空間轉換到RGB空間
I_enhancing2=imadjust(I,M,[0 1],4); %亮度降低
enhancingImage2=cat(3,H,S,I_enhancing2);%三分量合成
rgb2=hsi2rgb(enhancingImage2);%HSI空間轉換到RGB空間
subplot(1,3,1);imshow(sourceImage);title('原始圖像');
subplot(1,3,2);imshow(rgb1);title('HSI空間亮度增大');
subplot(1,3,3);imshow(rgb2);title('HSI空間亮度降低');
sourceImage=im2double(imread('people.jpg'));
J=rgb2hsi(sourceImage);
H=J(:,:,1);
S=J(:,:,2);
I=J(:,:,3);
%利用直方圖均衡化,調整亮度分量的灰階範圍
I_enhancing=histeq(I);
enhancingImage=cat(3,H,S,I_enhancing);
rgb=hsi2rgb(enhancingImage);
subplot(1,2,1);imshow(sourceImage);title('原始圖像');
subplot(1,2,2);imshow(rgb);title('直方圖均衡化後圖像');
sourceImage=im2double(imread('people.jpg'));
J=rgb2hsi(sourceImage);
H=J(:,:,1);%原始圖像的色調分量
S=J(:,:,2);%原始圖像的飽和度分量
I=J(:,:,3);%原始圖像的亮度分量
%利用直方圖規定化,設定亮度分量的灰階範圍
object_M = im2double(imread('template.jpg'));
J_M=rgb2hsi(object_M);
H_M=J_M(:,:,1);%模闆圖像的色調分量
S_M=J_M(:,:,2);%模闆圖像的飽和度分量
I_M=J_M(:,:,3);%模闆圖像的亮度分量
I_M_imhist = imhist(I_M);%模闆圖像的直方圖
I_enhancing= histeq(I,I_M_imhist);%直方圖規定化處理
enhancingImage=cat(3,H,S,I_enhancing);
rgb=hsi2rgb(enhancingImage);
subplot(1,3,1);imshow(sourceImage);title('原始圖像');
subplot(1,3,2);imshow(object_M);title('模闆圖像');
subplot(1,3,3);imshow(rgb);title('直方圖規定化後圖像');