我需要處理第一個「原始」圖像以獲得類似於第二個「增強」的圖像。我應用了一些naif計算,並且新圖像具有更多對比度和更強烈的顏色,但在較高顏色區域會出現顏色洞。我對圖像處理一無所知,如果你能向我建議我可以應用哪些概念和/或算法來獲得沒有這個問題的結果,那將是非常棒的。如何增強圖像的顏色和對比度
2
A
回答
3
將圖像轉換到HSB (Hue, Saturation, Brightness)
色彩空間。
將飽和度乘以一定的量。如果您的平臺需要它,請使用截止值。
實施例中的Mathematica:
satMult = 4; (*saturation multiplier *)
imgHSB = ColorConvert[Import["http://i.imgur.com/8XkxR.jpg"], "HSB"];
cs = ColorSeparate[imgHSB]; (* separate in H, S and B*)
newSat = Image[ImageData[cs[[2]]] * satMult]; (* cs[[2]] is the saturation*)
ColorCombine[{cs[[1]], newSat, cs[[3]]}, "HSB"]] (* rebuild the image *)
甲表增加飽和度值:
1
您在處理過的圖像中看到的 「洞」 是較暗的原始圖片的區域,使用變暗算法達到負值。我懷疑這些超出範圍的值然後作爲正數寫入到新圖像中,所以它們會以亮度比例的較高部分結束。例如,假設一個像素值爲10,並且您將減去所有像素中的12,以使它們變暗一點。這個像素會下溢並變成-2。當你把它寫回文件時,-2會被十六進制表示爲0xfe,如果你把它作爲一個無符號數,這就是254。
您應該使用一種算法將像素值保持在有效範圍內,或者至少應該將這些值「夾」到有效範圍內。定義爲一個C宏一個典型的鉗位功能是:
#define clamp(p) (p < 0 ? 0 : (p > 255 ? 255 : p))
如果加上上面的宏到您的處理功能,它會採取「洞」的照顧,而是你現在必須在那些地方暗色調。
如果您已準備好更高級一點的東西,here on Wikipedia它們具有GIMP使用的亮度和對比度公式。如果你選擇了合適的係數,這些將會對你的圖像做很好的工作。
0
This wikipedia這篇文章在解釋用於對比度增強的直方圖均衡方面做得很好。
代碼灰度圖像:
unsigned char* EnhanceContrast(unsigned char* data, int width, int height)
{
int* cdf = (int*) calloc(256, sizeof(int));
for(int y = 0; y < height; y++) {
for(int x = 0; x < width; x++) {
int val = data[width*y + x];
cdf[val]++;
}
}
int cdf_min = cdf[0];
for(int i = 1; i < 256; i++) {
cdf[i] += cdf[i-1];
if(cdf[i] < cdf_min) {
cdf_min = cdf[i];
}
}
unsigned char* enhanced_data = (unsigned char*) malloc(width*height);
for(int y = 0; y < height; y++) {
for(int x = 0; x < width; x++) {
enhanced_data[width*y + x] = (int) round(cdf[data[width*y + x]] - cdf_min)*255.0/(width*height-cdf_min);
}
}
free(cdf);
return enhanced_data;
}
相關問題
- 1. 什麼是增強彩色圖像對比度的好方法?
- 2. 使用Python的PIL,我該如何增強圖像的對比度/飽和度?
- 3. python中圖像的對數對比度增強
- 4. 圖像中NaN的對比顏色c
- 5. 增加對比度和亮度的圖像在柔性
- 6. 如何使用OpenGL的色調,亮度,對比度圖像
- 7. Keras實時增強增加噪聲和對比度
- 8. 如何使用梯度分配兩個圖像的顏色強度?
- 9. 自適應對比度增強(ACE)
- 10. 構造最大對比度的顏色
- 11. 如何使用jQuery的圖像的亮度和對比度
- 12. 在OPEN CV中疊加圖像的顏色強度Python
- 13. 圖像處理 - 亮度和對比度
- 14. 如何調整圖像的亮度和對比度?
- 15. 指定顏色值顯示對比度,色彩分析圖
- 16. 顏色亮度的比較
- 17. 如何填充顏色完全像這個圖像的顏色?
- 18. 如何比較兩種像素顏色
- 19. 使用JAI旋轉灰度圖像增加對比度
- 20. Java swing。如何將顏色強度從黑色變爲白色?
- 21. 如何使用R來製作顏色強度圖
- 22. 如何使用位圖增加圖像的高度和寬度
- 23. 計算python中圖像列表的綠色信號強度與紅色信號強度的比率
- 24. 灰度圖像上的顏色
- 25. 乘以圖像和顏色
- 26. 實時增強現實顏色變化?
- 27. 基於一個顏色通道的強度將RGB圖像轉換爲灰度
- 28. C#如何增亮顏色
- 29. 設置圖例的顏色和比例
- 30. 如何在我的項目中自動調整顏色和對比度
感謝,正是that's發生what's。我要去看看那個維基百科網站。 – Daniel