天天看點

點運算

調整亮度/對比度

線性函數

點運算
點運算

結論:如果一幅圖像集中在較暗的區域而導緻圖像偏暗,可以用灰階拉伸功能來擴充(斜率>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('直方圖規定化後圖像');