影象處理之影象增強
在影象的獲取、傳輸等過程中往往會有諸多因素對影象帶來一定的干擾,從而使得影象產生噪聲、質量降低等現象,進而不能達到人們對影象的視覺要求。為了使影象充分的滿足人們的需求,所以需要對影象進行相應的處理。
影象增強處理是對影象進行加工,使其結果對於特定的應用比原始影象更合適的一種處理。它能夠提高影象整體和區域性的對比度,突出影象的細節資訊,從而使得增強後的影象更符合人眼的視覺特性且易於機器識別。影象增強沒有通用的“理論”,不同的環境所使用的影象增強技術並不一定是相同的,比如對於增強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')
結果圖:
相關文章
- MATLAB數字影象處理(二)影象增強Matlab
- iOS 影象處理 - 影象拼接iOS
- 【數字影象處理】七.MFC影象增強之影象普通平滑、高斯平滑、Laplacian、Sobel、Prewitt銳化詳解
- UIImage 影象處理UI
- Bayer影象處理
- [Python影象處理] 六.影象縮放、影象旋轉、影象翻轉與影象平移Python
- [Python影象處理] 八.影象腐蝕與影象膨脹Python
- Python-OpenCV 處理影象(七):影象灰度化處理PythonOpenCV
- Python-OpenCV 處理影象(八):影象二值化處理PythonOpenCV
- 前端影象處理指南前端
- c#影象處理C#
- Javascript影象處理之虛擬邊緣JavaScript
- C++影象處理 -- 影象黑白調整應用C++
- 數字影象處理DIP
- 柵格影象的處理
- [Python影象處理] 五.影象融合、加法運算及影象型別轉換Python型別
- Python-OpenCV 處理影象(三):影象畫素點操作PythonOpenCV
- [Python影象處理] 七.影象閾值化處理及演算法對比Python演算法
- 影象中的畫素處理
- python PIL 影象處理操作Python
- 第十四章 處理影象
- GPU 加速下的影象處理GPU
- [Python影象處理] 一.影象處理基礎知識及OpenCV入門函式PythonOpenCV函式
- Python-OpenCV 處理影象(二):濾鏡和影象運算PythonOpenCV
- [Python影象處理] 三.獲取影象屬性、興趣ROI區域及通道處理Python
- 數字影象處理-第一節
- 影象處理庫GPUImage簡單使用GPUUI
- 數字影象處理目錄列表
- 6 款 Javascript 的影象處理庫JavaScript
- Kinect影象 骨骼點夾角處理
- 使用 canvas 對影象進行處理Canvas
- 神奇的影象處理演算法演算法
- 數字影象處理之二維碼影象提取演算法(一)演算法
- Python-OpenCV 處理影象(四):影象直方圖和反向投影PythonOpenCV直方圖
- matlab練習程式(模糊集影象增強)Matlab
- [Python影象處理] 四.影象平滑之均值濾波、方框濾波、高斯濾波及中值濾波Python
- 影象處理的濾鏡演算法演算法
- Linux 上的科學影象處理Linux