目錄
效果展示
函數(shù)講解
這里普通均值化使用的函數(shù)我之前的文章有介紹過:
equalizeHist(直方圖均衡化伪很,提升對比度)
另外一個自適應(yīng)均值化的函數(shù)如下(該函數(shù)從效果上看可以保留更多的細節(jié)):
CV_EXPORTS_W Ptr<CLAHE> createCLAHE(double clipLimit = 40.0, Size tileGridSize = Size(8, 8));
其中參數(shù)如下:
clipLimit :對比度限制的閾值
tileGridSize :直方圖均衡的網(wǎng)格大小狐赡,輸入圖像將被分成大小相等的矩形圖塊,tileGridSize 定義行和列中的瓦片數(shù)
實現(xiàn)代碼
extern "C"
JNIEXPORT jobject JNICALL
Java_com_itfitness_cppdemoone_activity_HistogramAverageActivity_imageHistogramAverage(JNIEnv *env,
jobject thiz,
jobject bitmap_src) {
//源圖像
Mat src;
//將Bitmap轉(zhuǎn)換為Mat
BitmapToMat(env,bitmap_src,src, JNI_FALSE);
cvtColor(src,src,CV_BGR2GRAY);
//直方圖均值化
equalizeHist(src, src);//圖像直方圖均衡化
//將Mat轉(zhuǎn)換為Bitmap
MatToBitmap(env,src,bitmap_src, JNI_FALSE);
//釋放Mat
src.release();
return bitmap_src;
}
extern "C"
JNIEXPORT jobject JNICALL
Java_com_itfitness_cppdemoone_activity_HistogramAverageActivity_imageAdaptiveHistogramAverage(
JNIEnv *env, jobject thiz, jobject bitmap_src) {
//源圖像
Mat src;
//將Bitmap轉(zhuǎn)換為Mat
BitmapToMat(env,bitmap_src,src, JNI_FALSE);
cvtColor(src,src,CV_BGR2GRAY);
//自適應(yīng)直方圖均值化
Ptr<CLAHE> ptr = createCLAHE(2.0,Size(8,8));
ptr->apply(src,src);
//將Mat轉(zhuǎn)換為Bitmap
MatToBitmap(env,src,bitmap_src, JNI_FALSE);
//釋放Mat
src.release();
return bitmap_src;
}