彩色圖像--圖像增強 直方圖增強


得知DIP文章70日
轉載請注明文章出處:http://blog.csdn.net/tonyshengtan 。出於尊重文章作者的勞動。轉載請標明出處。文章代碼已托管,歡迎共同開發:https://github.com/Tony-Tan/DIPpro

開篇廢話

繼續簡單的介紹一下彩色圖像處理相關的知識。今天來簡單的說下直方圖增強在彩色圖像中的應用,灰度圖像直方圖增強在此處做了相關介紹,包含其數學原理。
對於灰度圖像中的一些算法適合直接用到彩色圖像的各個通道。也有一些不適合,直方圖均衡就屬於不適合的一種。假設直接將其作用在各個通道上,將引起圖像色相的變化因此也就是圖像變的不是其原來的樣子了。今天我們將直方圖均衡用到HSI色彩空間的I分量上,直方圖對亮度分量進行均衡。是圖像在亮度上得到增強。在飽和度和色向上保持不變。

算法原理

算法的原理就是利用HSI色彩空間的特點,I分量代表圖像亮度。處理后不會改變圖像色相。

算法步驟:
1. 從RGB轉換到HSI
2. 分離HSI空間。I分量形成一個單獨的灰度圖像 fi
3. 對 fi 進行直方圖均衡
4. 用均衡后的數據取代原I分量數據
5. HSI轉換回RGB

代碼

/*********************************************************************************************************************/
void HistEqualRGB(RGB *src,RGB *dst,int width,int height){
 HSI *temp=(HSI*)malloc(sizeof(HSI)*width*height);
 double *chanel_i=(double *)malloc(sizeof(double)*width*height);
 RGB2HSI(src, temp, width, height);
 for(int i=0;i<width*height;i++){
 chanel_i[i]=(double)((int)temp[i].c3);
 }
 HistogramEqualization(chanel_i, chanel_i, width, height);
 for(int i=0;i<width*height;i++){
 temp[i].c3=chanel_i[i];
 }
 HSI2RGB(temp, dst, width, height);
 free(temp);
 free(chanel_i);

}
/*********************************************************************************************************************/

效果分析

以下對一些圖片進行上述算法操作。來觀察效果。
原圖:

這里寫圖片描寫敘述

原圖I分量:

這里寫圖片描寫敘述

原圖I分量直方圖:

這里寫圖片描寫敘述

直方圖均衡后結果:

這里寫圖片描寫敘述

直方圖均衡后直方圖:

這里寫圖片描寫敘述

處理后結果:

這里寫圖片描寫敘述


原圖:

這里寫圖片描寫敘述

原圖I分量:

這里寫圖片描寫敘述

原圖I分量直方圖:

這里寫圖片描寫敘述

直方圖均衡后結果:

這里寫圖片描寫敘述

直方圖均衡后直方圖:

這里寫圖片描寫敘述

處理后結果:

這里寫圖片描寫敘述


原圖:

這里寫圖片描寫敘述

原圖I分量:

這里寫圖片描寫敘述

原圖I分量直方圖:

這里寫圖片描寫敘述

直方圖均衡后結果:

這里寫圖片描寫敘述

直方圖均衡后直方圖:

這里寫圖片描寫敘述

處理后結果:

這里寫圖片描寫敘述


原圖:

這里寫圖片描寫敘述

原圖I分量:

這里寫圖片描寫敘述

原圖I分量直方圖:

這里寫圖片描寫敘述

直方圖均衡后結果:

這里寫圖片描寫敘述

直方圖均衡后直方圖:

這里寫圖片描寫敘述

處理后結果:

這里寫圖片描寫敘述

總結

整體來說算法效果穩定,計算速度快,但這僅僅是一種最簡單的彩色圖像增強的方法,由於已經決定以后做識別方向。所以彩色圖像的相關更深入的彩色變換,平滑,銳化。切割等僅僅做簡介,大家多多交流。
待續。

。。

版權聲明:本文博主原創文章,博客,未經同意不得轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM