數字影像處理中的直方圖均衡化
在數字影像處理中,直方圖均衡化是一個增強影像對比度和提高影像視覺質量的過程。我們可以使用MATLAB等數字工具來執行直方圖均衡化。本教程旨在透過使用MATLAB來解釋數字影像處理中的直方圖均衡化。但在講解之前,讓我們先對直方圖均衡化有一個基本的瞭解。
什麼是直方圖均衡化?
如上所述,直方圖均衡化是一種提高數字影像對比度和視覺質量的技術。直方圖均衡化更均勻地重新分佈圖像中畫素強度的值。總的來說,直方圖均衡化是一種平衡影像畫素強度的技術。
直方圖是一個圖表或圖形,顯示影像中畫素強度值的頻率分佈。
影像的直方圖均衡化涉及幾個不同的過程,例如計算累積分佈函式 (CDF)、變換函式,然後應用這些函式來均衡影像。
直方圖均衡化廣泛應用於各個領域,例如增強醫學影像、衛星影像、掃描文件等等。
現在,讓我們瞭解一些關於直方圖均衡化的重要點,在將它應用於影像時這些點非常重要。
關於直方圖均衡化的重要點
以下是一些我們在影像處理中使用它時應牢記的關鍵點
直方圖均衡化是一個全域性影像增強過程,因為它利用整個影像的直方圖來執行增強。
直方圖均衡化並非增強所有型別影像視覺質量的合適技術,因為它可能會產生不真實的增強效果。
直方圖均衡化被認為是增強低對比度影像的有效方法。
現在,讓我們看看使用MATLAB進行直方圖均衡化所涉及的步驟。
如何使用MATLAB執行直方圖均衡化?
在MATLAB中,有一個內建函式“histeq”,用於執行灰度影像的直方圖均衡化。
下面解釋了使用MATLAB執行直方圖均衡化的分步過程
步驟 (1) - 使用“imread”函式讀取輸入影像。
img = imread('Image.jpg');
步驟 (2) - 將輸入影像轉換為灰度影像進行處理。按如下方式操作:
gray_img = rgb2gray(img);
步驟 (3) - 使用“histeq”函式執行灰度影像的直方圖均衡化。按如下方式操作:
eq_img = histeq(gray_img);
步驟 (4) - 顯示均衡後的影像。按如下方式操作:
imshow(eq_img);
因此,在MATLAB中,使用“histeq”函式進行直方圖均衡化是一個簡單的四步過程。
現在讓我們舉一些例子來實際理解並檢視結果,看看直方圖均衡化如何作用於影像。
MATLAB在數字影像處理中執行直方圖均衡化的示例
如果您想了解如何在MATLAB中實現程式碼以在數字影像處理中執行直方圖均衡化,請瀏覽以下示例。
示例 (1)
% MATLAB code to perform histogram equalization % Read the input image img = imread('https://tutorialspoint.tw/assets/questions/media/14304-1687425236.jpg'); % Convert the input image to grayscale gray_img = rgb2gray(img); % Perform histogram equalization using the “histeq” function eq_img = histeq(gray_img); % Display the original gray image, histogram of gray image, histogram of equalized image, and equalized image subplot(2, 2, 1); imshow(gray_img); title('Original Image'); subplot(2, 2, 2); imhist(gray_img); title('Histogram of Gray Image'); subplot(2, 2, 3); imhist(eq_img); title('Histogram of Equalized Image'); subplot(2, 2, 4); imshow(eq_img); title('Equalized Image');
輸出

程式碼說明
在這個MATLAB程式碼中,我們首先讀取輸入影像,這是一個RGB影像。因此,接下來我們將它轉換為灰度影像進行處理。之後,我們對影像進行直方圖均衡化以增強其視覺效果。這是透過使用“histeq”函式完成的。最後,我們顯示原始灰度影像及其直方圖,以及均衡後的影像及其直方圖。這些輸出如上圖所示。
為了更好地理解,讓我們再用不同的影像舉個例子。
示例 (2)
% MATLAB code to perform histogram equalization % Read the input image img = imread('https://tutorialspoint.tw/assets/questions/media/14304-1687425269.jpg'); % Convert the input image to grayscale gray_img = rgb2gray(img); % Perform histogram equalization using the “histeq” function eq_img = histeq(gray_img); % Display the original gray image, histogram of gray image, histogram of equalized image, and equalized image subplot(2, 2, 1); imshow(gray_img); title('Original Image'); subplot(2, 2, 2); imhist(gray_img); title('Histogram of Gray Image'); subplot(2, 2, 3); imhist(eq_img); title('Histogram of Equalized Image'); subplot(2, 2, 4); imshow(eq_img); title('Equalized Image');
輸出

結論
總而言之,直方圖均衡化是一種影像處理方法,用於提高影像的對比度和視覺質量。這種影像處理技術分析並重新分佈圖像中的畫素強度值,以獲得更均衡的強度級別。
在本教程中,我已經詳細解釋了使用MATLAB進行直方圖均衡化的概念。此外,我還包含了MATLAB程式設計中的示例程式,以便更好地瞭解執行影像直方圖均衡化的程式碼實現。您可以使用您自己的影像嘗試這些程式碼。