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

