MATLAB中的顏色直方圖均衡化是什麼?


在數字影像處理中,有一種稱為直方圖均衡化的技術,用於透過操縱影像中的對比度來增強影像的視覺質量。直方圖均衡化透過重新分配影像中的畫素值來提高影像質量,以便影像的直方圖可以均勻分佈。

直方圖就是每個畫素強度值的出現頻率。有時,我們會看到影像中的畫素強度集中在特定範圍內,導致影像的視覺質量較差。直方圖均衡化用於透過操縱畫素強度級別來解決此問題,以便它們可以在整個可用範圍內均勻分佈。

在本教程中,我們將學習顏色直方圖均衡化以及如何在MATLAB中將其應用於影像。

MATLAB中的顏色直方圖均衡化

在MATLAB中,我們可以透過重新分配其不同顏色通道的畫素強度來增強彩色影像的視覺質量。此技術稱為顏色直方圖均衡化

顏色直方圖均衡化改善了影像中的對比度分佈,使影像更具視覺吸引力。

顏色直方圖均衡化的過程

下面描述了在MATLAB中執行顏色直方圖均衡化的分步過程:

  • 步驟 (1) − 讀取輸入彩色影像。

  • 步驟 (2) − 將輸入RGB影像轉換為Lab顏色影像。

  • 步驟 (3) − 對影像執行顏色直方圖均衡化。

  • 步驟 (4) − 將Lab顏色影像轉換回RGB影像。

  • 步驟 (5) − 顯示增強的影像。

因此,MATLAB中的顏色直方圖均衡化是一個簡單的五步過程。

MATLAB示例

現在,讓我們看看MATLAB程式的實現,以執行影像的顏色直方圖均衡化。

下面的MATLAB程式演示了在MATLAB程式設計中實現顏色直方圖均衡化。

% MATLAB code for performing color histogram equalization
% Read the input color image
% Read the input image
img = imread('https://tutorialspoint.tw/assets/questions/media/14304-1687425236.jpg');

% Convert the RGB image to lab color image
lab_img = rgb2lab(img);

% Extract the luminance channel of the lab image
L = lab_img(:, :, 1);

% Perform color histogram equalization of L channel
che = histeq(L);
enhanced_lab_img = lab_img;	% Copy the original lab image to the variable 'enhanced_lab_img'
enhanced_lab_img(:, :, 1) = che;	% Assign the equalized L-channel to L-channel of the 'enhanced_lab_img'

% Convert the equalized image back to RGB image
enhanced_rgb_img = lab2rgb(enhanced_lab_img);

% Display the original and enhanced images
subplot(1, 2, 1), imshow(img), title('Original Image');
subplot(1, 2, 2), imshow(enhanced_rgb_img ), title('Enhanced Image');

輸出

解釋

在這個MATLAB程式中,我們首先使用'imread'函式讀取輸入彩色影像,並將其儲存在變數'img'中。然後,我們使用'rgb2lab'函式將輸入RGB影像轉換為Lab顏色影像,並將其儲存在變數'lab_img'中。在Lab顏色影像中,可以輕鬆地將影像的亮度通道與其顏色資訊分離,這有助於在不影響其顏色平衡的情況下執行顏色直方圖均衡化。

之後,我們分離顏色亮度通道並使用'histeq'函式對其應用直方圖均衡化。

接下來,我們將增強的亮度通道分配給原始Lab影像的亮度通道,並使用'lab2rgb'函式將增強的Lab影像轉換回RGB影像。

最後,我們使用'disp'函式顯示原始影像和增強影像。

結論

這就是對影像執行顏色直方圖均衡化以提高其視覺質量的所有內容。這是一個相當簡單直接的過程,可以提高影像的對比度級別。在上面給出的MATLAB中,您可以將影像的地址替換為您自己的地址進行實驗。

更新於:2023年9月6日

瀏覽量:174

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告