繁体   English   中英

如何使用Java API在OpenCV中执行DoG

[英]How to perform DoG in opencv with java API

我只想知道哪个带有Java API的opencv可以区分高斯DoG?

顾名思义,DOG就是图像与2个卷积的差。

让我们做吧:

//
// grayscale:
//
Mat gray = new Mat(); 
Imgproc.cvtColor(ocv,gray, Imgproc.COLOR_BGR2GRAY);

//
// make 2 kernels:
//
Mat k1 = Imgproc.getGaussianKernel(5, 0.6);
Mat k2 = Imgproc.getGaussianKernel(5, 4.2);

//
// apply them on your image:
//
Mat f1 = new Mat();
Imgproc.filter2D(gray, f1, CvType.CV_32F, k1);
Mat f2 = new Mat();
Imgproc.filter2D(gray, f2, CvType.CV_32F, k2);

//
// difference:
//

Mat dog = new Mat();
Core.subtract(f1,f2,dog);

[编辑:]

甚至在极少数情况下,您都可以通过应用过滤器的diff与不同的拟合器交换连续卷积

G(img,fa)-G(img,fb) == G(img, fa-fb)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM