这次记录下拉普拉斯锐化是如何增强图像的,首先介绍什么是拉普拉斯锐化?
对于二维图像公式:
从中可以看出是梯度的公式,那么扩展开表示为:
最终拉普拉斯变化的表达式为:
最后的锐化公式为:
其中,
g是输出,f为原始图像,c是系数,表示细节权重
。
下图为拉普拉斯锐化的效果:
原始图像:
锐化图像:
可以看出,亮度增强了很多,尤其是纹理复杂的区域。
参考代码:
Mat image = imread("../seq/test1.jpg");
if (image.empty()) {
std::cout << "打开图像失败,请检查路径" << std::endl;
return;
}
imshow("image", image);
Mat imageBf;
bilateralFilter(image, imageBf, 5, 10, 10);//双边滤波
Mat imageEnhance;
Mat kernel = (Mat_<float>(3, 3) << 0, -1, 0, 0, 5, 0, 0, -1, 0);
filter2D(imageBf, imageEnhance, CV_8UC3, kernel);
imshow("拉普拉斯图像增强效果", imageEnhance);
imshow("拉普拉斯锐化", image);
imwrite("../seq/拉普拉斯锐化.png", imageEnhance);
waitKey();
如有问题,欢迎留言,转载请标明出处!