Java Opencv 实现锐化

2019/04/10 10:10
阅读数 27

§ 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

原文出处:https://www.cnblogs.com/dgwblog/p/12458532.html

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部