zoukankan      html  css  js  c++  java
  • Java Opencv 实现锐化

    § Laplacian()
    void cv::Laplacian    (    InputArray     src,
                                           OutputArray     dst,
                                           int     ddepth,
                                           int     ksize = 1,
                                           double     scale = 1,
                                           double     delta = 0,
                                           int     borderType = BORDER_DEFAULT
                                    )

    参数:

    src            源图片
    dst            与src相同大小和相同通道数的目标图像。
    ddepth        目标图像的所需深度。
    ksize        用于计算二阶导数滤波器的孔径大小。有关详细信息,请参阅getDerivKernels。大小必须是正面和奇数。
    scale        计算的拉普拉斯算子值的可选比例因子。默认情况下,不应用缩放。有关详细信息,请参阅getDerivKernels。
    delta        在将结果存储在dst之前添加到结果中的可选增量值。
    borderType    像素外推方法,请参阅cv :: BorderTypes

    计算图像的拉普拉斯算子。

    该函数通过将使用Sobel运算符计算的第二个x和y导数相加来计算源图像的拉普拉斯算子:


    上式在ksize>1时。

    如果ksize==1,拉普拉斯算子是



    package com.gitee.dgw.lesson8;
    
    import com.gitee.dgw.lesson1.platformUtils;
    import org.bytedeco.javacpp.opencv_core;
    import org.opencv.core.Core;
    import org.opencv.core.Mat;
    import org.opencv.core.Size;
    import org.opencv.core.Point;
    import org.opencv.highgui.HighGui;
    import org.opencv.imgcodecs.Imgcodecs;
    import org.opencv.imgproc.Imgproc;
    
    import static org.opencv.core.Core.BORDER_DEFAULT;
    import static org.opencv.core.CvType.CV_16S;
    import static org.opencv.core.CvType.CV_8UC3;
    import static org.opencv.imgproc.Imgproc.COLOR_BGR2GRAY;
    
    /**
     * @program: learn-opencv
     * @description:
     * @author: Mr.Dai
     * @create: 2020-03-10 20:36
     **/
    public class Laplacian {
    
        private final  static String path=System.getProperty("user.dir")+"\catton.jpg";
        /// 全局变量
        private final  static  int scale = 1;
        private final  static int delta = 0;
        private final  static int ddepth = CV_16S;
        // 锐化度数
        private final  static int kernel_size = 3;
    
        static{
            platformUtils.loadLibraries();
        }
    
        public static void main(String[] args) {
            Mat src = new Mat();
            Mat src_gray=new Mat();
            Mat dst=new Mat();
            //读取一张图片
            //image=Imgcodecs.imread(path);
    
            //读取一张灰度图片
            src= Imgcodecs.imread(path,Imgcodecs.IMREAD_COLOR);
    
            if (src.empty()) {
                System.err.println("加载图片出错,请检查图片路径!");
                return;
            }
    
            Imgproc.GaussianBlur(src, src, new Size(3, 3), 0, 0, BORDER_DEFAULT);
    
            Imgproc.cvtColor(src, src_gray, COLOR_BGR2GRAY);
    
            Mat abs_dst=new Mat();
            //![laplacian]
            Imgproc.Laplacian(src_gray, dst, ddepth, kernel_size, scale, delta, BORDER_DEFAULT);
            //![laplacian]
    
            //![convert]
            Core.convertScaleAbs(dst, abs_dst);
    
            HighGui.imshow("dstimg showimg",src);
            HighGui.imshow("srcimage showimg",abs_dst);
            // 无限等待按键按下
            HighGui.waitKey(0);
    
        }
    }


    image

  • 相关阅读:
    OS X进程管理之launchctl
    varnish-4.x 之varnishlog,varnishstat,varnishtop,varnishhist
    Java ClassLoader详解(转载)
    java线程中断[interrupt()函数] (转载)
    Struts2实例详解(转载)
    java 重定向和转发(转载)
    Java中Class.forName()的作用(转载)
    JSP页面的编码设置(转载)
    Struts2 实例(转载)
    Spring AOP(转载)
  • 原文地址:https://www.cnblogs.com/dgwblog/p/12458532.html
Copyright © 2011-2022 走看看