1. 程式人生 > >增強影象細節(附C++程式碼)

增強影象細節(附C++程式碼)

最近看到百圖經驗中有個快速提高影象清晰度的帖子,不是用銳化,而是用濾鏡的方式。
具體操作:
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