圖像的銳化


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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM