如何在java/javacv中绘制图像上检测到的关键点



谁能告诉我,我怎么能检测图像的关键点,并在java中绘制该图像上的关键点?我试过smt,但我不知道如何画它们?对于我应该如何进行或我的代码绘图的任何想法?

final IplImage image1 = cvLoadImage(
                "C:/Users/Can/Desktop/panorama_image1.jpg",
                CV_LOAD_IMAGE_GRAYSCALE);
        final CanvasFrame canvas1 = new CanvasFrame("Image1");
        canvas1.showImage(image1);
        canvas1.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
        SIFT sift = new SIFT();
        KeyPoint keypoint1 = new KeyPoint();
        sift.detect(image1, null, keypoint1);
        System.out.println("Keypoints for image1: " + keypoint1.capacity());

假设您或其他人仍然需要这个,您可以执行以下操作。

使用Java,在计算了关键点之后,可以使用OpenCV中的Features2d类执行以下操作。

    // draw keypoints on image
    Mat outputImage = new Mat();
    // Your image, keypoints, and output image
    Features2d.drawKeypoints(image, keypoints, outputImage);
    String filename = "keypoints.jpg";
    System.out.println(String.format("Writing %s...", filename));
    Highgui.imwrite(filename, outputImage);

如果你或其他人仍然需要一个答案,我相信可能的方法是:

opencv_features2d.drawKeypoints(_image1, keypoint1, Mat.EMPTY);

然后你可以使用

保存你的_image1到文件

ImageIO.write(_image1.getBufferedImage(), "png", new File("image1.png"));

但在此之前,你必须打开你的image1作为一个Mat对象:Mat _image1 = new Mat(image1);

相关内容

  • 没有找到相关文章

最新更新