Java Opencv 实现锐化
---dgw博客 人气:0§ 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); } }
加载全部内容