影像處理中使用 MATLAB 的自適應直方圖均衡化


直方圖均衡化是一種用於影像處理以改善直方圖動態範圍的方法。這種數學技術廣泛用於增強數字影像處理中影像的對比度。這種技術提供了影像中畫素值更廣泛和均衡的分佈。直方圖均衡化技術基本上是透過增強影像中亮度值的範圍來工作的,這使得它在視覺上更具吸引力。

自適應直方圖均衡化 (AHE) 簡介

在數字影像處理中,自適應直方圖均衡化 (AHE) 是一種用於增強影像對比度的方法。自適應直方圖均衡化技術不同於傳統的直方圖均衡化,因為它首先將影像劃分為較小的子區域,然後透過對每個子區域分別應用直方圖均衡化技術來增強影像的對比度。

因此,自適應直方圖均衡化技術可以提供影像的區域性對比度增強。因此,在照明條件變化的影像情況下,這成為一種更有效的方法。

自適應直方圖均衡化的優勢

自適應直方圖均衡化在數字影像處理中提供了各種優勢。其中一些列在此處

  • 自適應直方圖均衡化透過改善更廣泛範圍內的亮度級別來增強影像的對比度。

  • 自適應直方圖均衡化可以提供影像的區域性對比度增強,這在亮度級別變化的影像中非常有用。

  • 自適應直方圖均衡化可以提高在低光照條件、亮度級別變化等環境中拍攝的影像的整體可見度。

用於自適應直方圖均衡化的 MATLAB 函式

以下 MATLAB 函式用於編寫 MATLAB 程式碼,以使用自適應直方圖均衡化增強影像的對比度

  • imread():這是一個用於讀取影像的內建 MATLAB 函式。

  • size():這是一個用於確定影像大小的 MATLAB 函式。

  • rgb2gray():這也是一個用於將 RGB 影像轉換為灰度影像的內建 MATLAB 函式。

  • adapthisteq():這是 MATLAB 中用於對影像執行自適應直方圖均衡化的內建函式。

  • imshow():這是一個用於顯示影像的 MATLAB 函式。

MATLAB 程式示例

以下是 MATLAB 程式示例,用於說明如何在影像處理中執行自適應直方圖均衡化
%MATLAB Code to perform adaptive histogram equalization in image processing
% Call imread() function to read the image that has to be enhanced
img = imread('https://tutorialspoint.tw/assets/questions/media/14304-1687425236.jpg');
% Call size() and rgb2gray() functions to get size and convert the image to grayscale if necessary
if size(img, 3) == 3
   img = rgb2gray(img);
end
% Call adapthisteq() function to perform Adaptive Histogram Equalization
enhanced_img = adapthisteq(img);
% Call imshow() function to display the original and enhanced images
figure;
subplot(1, 2, 1); imshow(img); title('Original Image');
subplot(1, 2, 2); imshow(enhanced_img); title('Enhanced Image');

輸出

結論

在此 MATLAB 程式中,我們首先呼叫“imread()”函式來讀取輸入影像。然後,我們呼叫“size() 和 rgb2gray()”函式以獲取大小並將彩色影像轉換為灰度影像。之後,我們呼叫“adapthisteq()”函式對影像執行自適應直方圖均衡化。此函式會自動將整個影像劃分為較小的區域,然後分別對每個區域應用直方圖均衡化。最後,我們呼叫“imshow()”函式來顯示原始影像和增強後的影像。

更新於: 2023-07-18

258 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告