影象處理之影象增強
在影象的獲取、傳輸等過程中往往會有諸多因素對影象帶來一定的干擾,從而使得影象產生噪聲、質量降低等現象,進而不能達到人們對影象的視覺要求。為了使影象充分的滿足人們的需求,所以需要對影象進行相應的處理。
影象增強處理是對影象進行加工,使其結果對於特定的應用比原始影象更合適的一種處理。它能夠提高影象整體和區域性的對比度,突出影象的細節資訊,從而使得增強後的影象更符合人眼的視覺特性且易於機器識別。影象增強沒有通用的“理論”,不同的環境所使用的影象增強技術並不一定是相同的,比如對於增強X射線影象非常有用的方法,可能並不是增強由電磁波譜中遠紅外波段拍攝的影象的最好方法。影象增強應當注意以下四個方面:(1)提高影象整體和區域性的對比度,影象增強演算法不僅僅只是使影象整體的對比度提高,而且還能使得影象的區域性細節資訊得到相應的增強。(2)在增強影象的同時,應該避免放大噪聲,這在一定程度上將會對影象質量造成影響。(3)增強後的影象應該具有良好的視覺效果,避免增強後的影象區域性增強過度或過弱。(4)影象增強應該具備較好的實時性。近年來應用最為廣泛的影象增強演算法包含直方圖均衡、小波變換、偏微分方程以及基於Retinex理論的影象增強演算法。
本文主要講述的影象增強演算法是直方圖均衡化。
直方圖是多種空間域處理技術的基礎,它表示了影象中每個灰度級與出現該灰度級的畫素點個數的統計關係,反映了影象中每種灰度出現的概率。
假設I∈I(i,j)表示的是灰度級為L的影象,I(i,j)表示座標位置為(i,j)處的灰度值,I(i,j)∈[0,L-1],影象I灰度級的概率密度函式定義為:
式中,N為畫素點的總數,nk表示灰度級為k的畫素點的個數。影象I灰度級的累積分佈函式定義為:
標準的直方圖均衡演算法通過累積分佈函式將原始影象對映為具有近似均勻灰度級分佈的增強影象,相應的對映關係為:
MATLAB程式碼:
clc;
close all;
clear
image=imread('ball.tif');
[height,width,z]=size(image);
if z>1
Img=rgb2gray(image);
else
Img=image;
end
[hist,x1]=imhist(Img);
hist=hist./(height*width);
%% 統計每個灰度的畫素值累計數目
NumPixel=zeros(1,256);
for s=1:height
for t=1:width
NumPixel(Img(s,t)+1)=NumPixel(Img(s,t)+1)+1;
end
end
%% 將每個灰度值的畫素值累計數目轉變成頻率
ProbPixel=zeros(1,256);
for s=1:256
ProbPixel(s)=NumPixel(s)/(height*width);
end
CumuPixel=cumsum(ProbPixel);
CumuPixel=uint8(255.*CumuPixel+0.5);
%% 直方圖均衡的反對映
for s= 1:height
for t = 1: width
HE(s,t) = CumuPixel(Img(s,t)+1);
end
end
[hist2,x2]=imhist(HE);
%% 顯示影象
figure,subplot(121),imshow(Img),title('original image')
subplot(122),imshow(HE),title('histogram equalization')
結果圖:
相關文章
- [Python影象處理] 六.影象縮放、影象旋轉、影象翻轉與影象平移Python
- [Python影象處理] 八.影象腐蝕與影象膨脹Python
- [Python影象處理] 五.影象融合、加法運算及影象型別轉換Python型別
- 數字影象處理DIP
- [Python影象處理] 七.影象閾值化處理及演算法對比Python演算法
- [Python影象處理] 一.影象處理基礎知識及OpenCV入門函式PythonOpenCV函式
- 影象中的畫素處理
- [Python影象處理] 三.獲取影象屬性、興趣ROI區域及通道處理Python
- 數字影象處理-第一節
- 影象處理庫GPUImage簡單使用GPUUI
- [Python影象處理] 四.影象平滑之均值濾波、方框濾波、高斯濾波及中值濾波Python
- 影象處理的濾鏡演算法演算法
- 實戰 | 用Python做影象處理(一)Python
- IEMLRN:基於影象增強的句子語義表示
- Luminar 4 for MacOS影象後期處理軟體Mac
- [Python影象處理] 九.形態學之影象開運算、閉運算、梯度運算Python梯度
- [Python影象處理] 十.形態學之影象頂帽運算和黑帽運算Python
- 【筆記】基於Python的數字影象處理筆記Python
- 影象處理入門:目標檢測和影象檢索綜述
- 影象處理1--傅立葉變換(Fourier Transform )ORM
- 如何在Tensorflow.js中處理MNIST影象資料JS
- 【影象處理】人臉美顏演算法初次嘗試演算法
- 影象識別及處理相關資料集介紹
- 值得珍藏機器視覺10大常用影象處理庫視覺
- WebComponent+WebGl的實時影象處理彈幕播放器Web播放器
- Python基礎教程:Day15-影象和辦公文件處理Python
- 黑洞圖片的背後,是影象處理技術的成熟!
- matlab中將RGB影象轉化為灰度影象Matlab
- [Python影象處理] 二.OpenCV+Numpy庫讀取與修改畫素PythonOpenCV
- 繪製影象
- Matplotlib 系列之【繪製函式影象】函式
- python示例 呼叫影象識別服務識別影象Python
- activity影象亂碼
- [Python影象處理] 十一.灰度直方圖概念及OpenCV繪製直方圖Python直方圖OpenCV
- 影象OCR年度進展|VALSE2018之十一
- MATLAB中的影象融合Matlab
- 細粒度影象分類
- SVG 影象入門教程SVG