增強影象細節(附C++程式碼)
阿新 • • 發佈:2019-01-07
最近看到百圖經驗中有個快速提高影象清晰度的帖子,不是用銳化,而是用濾鏡的方式。
具體操作:
1.開啟照片並複製一個圖層,位於原始圖層上方
2.對複製的圖層使用濾鏡,濾鏡-其它-高反差保留
3.複製圖層的混合模式改成“強光”,為了效果更加,也可以把這個層複製一份,混合模式同樣為“強光”,初步的清晰化已經實現。可以看的出,這樣的清晰處理,沒有銳化濾鏡的畫素化糟糕結果。
左邊是原圖,右邊是結果圖。
用C++實現了上述過程,程式碼如下:
void Promote Definition () { Mat image = imread("D:\\OPENCV\\LibTest\\result_iris\\test.jpg",0); Mat newimage(image.rows,image.cols,image.type()); GaussianBlur(image,newimage,Size(5,5),0.8,0); //GaussianBlur(image,image,Size(3,3),0,0); Mat imagegray(image.rows,image.cols,image.type(),Scalar(127)); newimage=image-newimage+imagegray;//newimage 高反差結果圖 //強光混合圖層 int im=0; float imgf; float newimgf; int num=2; while(num>0) { for(int i=0;i(i,j)<=128) im=image.at(i,j)*newimage.at(i,j)/128; else im=255-(255-image.at(i,j))*(255-newimage.at(i,j))/128; image.at(i,j)=im; } num--; } }
參考文獻:
1.http://www.cnblogs.com/Imageshop/p/3583589.html
2.http://jingyan.baidu.com/article/fec4bce20ae348f2608d8b64.html