1.图像锐化概念原理
- 图像锐化是一种突出和加强图像中景物的边缘和轮廓的技术。图像锐化的本质是
增加邻域间像素的差值,使图像的突变部分变得更加明显。 - 图像的卷积计算除了可以完成模糊去噪、边缘检测等任务外,还可以实现图像锐化/增强的功能。一般也通过
Laplacian滤波加原图权重像素叠加锐化空间滤波器用来增强图像的突变信息,图像的细节和边缘信息。 - 补充:低通滤波器和高通滤波器
- 平滑滤波器主要是使用邻域的均值(或者中值、积分)来代替模板中心的像素,消弱和邻域间的差别,以达到平滑图像和抑制噪声的目的;模糊图像,称为低通滤波器
- 锐化滤波器则使用邻域的微分作为算子,增大邻域间像素的差值,使图像的突变部分变的更加明显。锐化的作用是加强图像的边沿和轮廓,通常也成为高通滤波器:
2.opencv实现
图像锐化的本质是图像拉普拉斯滤波加原图权重像素叠加的输出:
拉普拉斯算子

- 当C值大于8时候表示图像锐化、越接近8表示锐化效果越好
- 当C值等于8时候图像的高通滤波
- 当C值越大,图像锐化效果在减弱、中心像素的作用在提升
代码
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char* argv[])
{
Mat src = imread("yuan_test.png");
if (src.empty()) {
printf("could not load image...\n");
return -1;
}
namedWindow("input", CV_WINDOW_AUTOSIZE);
imshow("input", src);
Mat sharpen_op = (Mat_<char>(3, 3) << 0, -1, 0,
-1, 5, -1,
0, -1, 0);
Mat result;
filter2D(src, result, CV_32F, sharpen_op);
convertScaleAbs(result, result);
imshow("sharpen image", result);
waitKey(0);
return 0;
}
//version1.1
原图

锐化图

对比

可以明显看出锐化后的图比原图多了一些纹理细节元素
参考:
https://blog.csdn.net/PecoHe/article/details/95289957
https://blog.csdn.net/cyf15238622067/article/details/87859887
https://wx.zsxq.com/dweb2/index/group/551551828124?from=mweb&type=detail

浙公网安备 33010602011771号