自動對比度的opencv實現

2021-09-06 19:00:02 字數 1893 閱讀 9304

在 一文中,作者給出了「自動對比度」的實現方法,非常nice

實際實現過程中,我發現文中有 「dim histred(255)」這樣的定義。一般來說,通道是0-255乙個256階的吧,如果不是語法的不同,應該是乙個bug.

mat autocontrost(mat matface)

;

double histgreen[256]=;

double histblue[256]=;

int bluemap[256]=;

int redmap[256]=;

int greenmap[256]=;

double dlowcut = 0.1

;

double dhighcut = 0.1

;

for (int i=0;i)

}int pixelamount = matface.rows*matface.cols;

int isum = 0

;

//blue

int iminblue=0;int imaxblue=0

;

for (int y = 0;y<256;y++)//

這兩個操作我基本能夠了解了

}isum = 0

;

for (int y=255;y>=0;y--)

}//red

isum=0

;

int iminred=0;int imaxred=0

;

for (int y = 0;y<256;y++)//

這兩個操作我基本能夠了解了

}isum = 0

;

for (int y=255;y>=0;y--)

}//green

isum=0

;

int imingreen=0;int imaxgreen=0

;

for (int y = 0;y<256;y++)//

這兩個操作我基本能夠了解了

}isum = 0

;

for (int y=255;y>=0;y--)

}/自動色階

//自動對比度

int imin = 255;int imax =0

;

if (imin>iminblue)

imin =iminblue;

if (imin>iminred)

imin =iminred;

if (imin>imingreen)

imin =imingreen;

iminblue =imin ;

imingreen=imin;

iminred =imin ;

if (imaximax =imaxblue;

if (imaximax =imaxgreen;

if (imaximax =imaxred;

imaxred =imax;

imaxgreen =imax;

imaxblue=imax;

/////

//blue

for (int y=0;y<256;y++)

else

else}}

//red

for (int y=0;y<256;y++)

else

else}}

//green

for (int y=0;y<256;y++)

else

else}}

//查表

for (int i=0;i)

}return

matface;

}

Emgucv emgucv實現自動對比度

主要參考 這裡面所描述的自動對比度演算法,通過c 及emgucv的方式實現。void autocontrastimage imagebyte image,ref imagebyte imageac for int i 0 i image.height i int pixelcnt image.wid...

open cv對比度與亮度調節

影象變換可以看作如下 畫素變換 點操作 調整影象亮度和對比度屬於畫素變換 點操作 鄰域操作 區域 影象卷積 梯度計算 g i,j a f i,j b其中a 0,b是增益變數 重要的api mat new image mat zeros image,size image.type 創 建一張跟原影象大...

新的顏色對比度演算法 感知對比度演算法APCA

目錄感知對比度演算法 apca 最後靈感的源泉 於不斷的接受新鮮事物。chrome 89 新功能一覽,效能提公升明顯,大量 devtools 新特性!文章中的新特性,掌握了對日常開發,很受益,趕緊更新瀏覽器版本吧。談談其中提到的 新的顏色對比度演算法 先進感知對比度演算法 apca 啟用該功能設定 ...