Bläddra i källkod

图像单通道拆解

syh 5 år sedan
förälder
incheckning
6c9bfd702e

+ 10 - 10
jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/opencv/CornerCheck.java

@@ -93,7 +93,7 @@ public class CornerCheck {
             Mat grad = new Mat();
             Core.addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0, grad);
             Imgcodecs.imwrite("D:\\data\\shark.jpg", grad);
-            Imgproc.goodFeaturesToTrack(grad, corners, maxCorners, qualityLevel, minDistance, new Mat(new Size(grad.width(), grad.height()), CvType.CV_8UC1), blockSize, useHarrisDetector, k);
+            Imgproc.goodFeaturesToTrack(grad, corners, maxCorners, qualityLevel, minDistance, new Mat(), blockSize, useHarrisDetector, k);
             Point[] pCorners = corners.toArray();
             List<Point> pointList = new ArrayList<>();
             double maxX = 0d;
@@ -177,19 +177,19 @@ public class CornerCheck {
         try {
             System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
 
-            final int maxCorners = 50, blockSize = 3;
-            final double qualityLevel = 0.01, minDistance = 10.0, k = 0.04;
+            final int maxCorners = 50, blockSize = 5;
+            final double qualityLevel = 0.04, minDistance = 10.0, k = 0.04;
             final boolean useHarrisDetector = false;
             MatOfPoint corners = new MatOfPoint();
 
             Mat src = Imgcodecs.imread(filePath);
-//            for (int i=0;i<src.cols();i++){
-//                for(int j=0;j<src.rows();j++){
-//                    if (i > 160 && i < 470 && j > 250 && j < 750) {
-//                        Imgproc.circle(src, new Point(i,j), 1, new Scalar(0, 236, 2), Imgproc.FILLED);
-//                    }
-//                }
-//            }
+            for (int i = 0; i < src.cols(); i++) {
+                for (int j = 0; j < src.rows(); j++) {
+                    if (i > 160 && i < 470 && j > 250 && j < 750) {
+                        Imgproc.circle(src, new Point(i, j), 1, new Scalar(0, 236, 2), Imgproc.FILLED);
+                    }
+                }
+            }
             //卷积
             Mat kernel = new Mat(3, 3, CvType.CV_16SC1);
             kernel.put(0, 0, 0, -1, 0, -1, 5, -1, 0, -1, 0);