• 图像的锐化


    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...
    ");
            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

  • 相关阅读:
    Json 操作
    visual studio 单元测试的认识
    EntityFramework 贪婪加载与延迟加载以及资源回收
    idea 查看源码
    idea技巧快速生成构造函数 get set
    Spring Boot Jpa框架自定义查询语句返回自定义实体
    启动redis
    查找nginx安装目录并启动
    idea技巧 --查找当前方法都被哪些类引用
    第一个webapi及swagger
  • 原文地址:https://www.cnblogs.com/zhaobinyouth/p/12172409.html
Copyright © 2020-2023  润新知