【问题标题】:OpenCV - Display ONLY the keypoints NOT the image using SIFTOpenCV - 仅显示关键点而不是使用 SIFT 的图像
【发布时间】:2014-04-17 23:58:21
【问题描述】:

我正在尝试使用此示例代码绘制关键点(没有图像):

import cv2
import numpy as np

img = cv2.imread('test.png')
gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

sift = cv2.SIFT()
kp = sift.detect(gray,None)

img=cv2.drawKeypoints(gray,kp)

cv2.imwrite('sift_keypoints.jpg',img)

我尝试了cv2.drawKeypoints(None,kp)cv2.drawKeypoints(kp),但无济于事。

有什么想法可以实现吗?

谢谢。

【问题讨论】:

    标签: opencv image-processing sift keypoint


    【解决方案1】:

    OpenCV 没有任何方法单独绘制关键点。这是我用来查找 SIFT 关键点的代码。

    import org.opencv.core.*;
    import org.opencv.features2d.FeatureDetector;
    import org.opencv.features2d.Features2d;
    import org.opencv.highgui.*;
    
    import com.atul.JavaOpenCV.Imshow;
    
    public class testdraw 
    {
    public static void main(String args[])
    {
    
            System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    
            Mat img=Highgui.imread("C:\\100.jpg");
            Mat outputImage = new Mat();
    
            FeatureDetector siftDetector = FeatureDetector.create(FeatureDetector.SIFT);
            MatOfKeyPoint siftKeypoint = new MatOfKeyPoint();
    
            siftDetector.detect(img,siftKeypoint);
            Features2d.drawKeypoints(img, siftKeypoint, outputImage);
    
            //Highgui.imwrite("C:\\101.jpg", outputImage);
            Imshow im = new Imshow("Output");
            im.showImage(outputImage);
    }       
    
    }
    

    【讨论】:

      【解决方案2】:

      您可以在与原始图像相同形状的纯黑色图像上绘制关键点。

      这是我使用的图像:

      然后我得到了关键点:

      然后我创建了一个与原始图像大小相同的纯色(黑色)图像,并在其上绘制这些关键点。

      瞧,只有关键点

      代码:

      #---Creating image of solid color with same size as image---
      mask = np.zeros((img.shape[0], img.shape[1], 3), np.uint8)
      mask[:] = (0, 0, 0) 
      
      #---Drawing keypoints on the mask image---
      fmask = cv2.drawKeypoints(mask,kp,None,color=(0,255,0), flags=0)
      cv2.imshow('fmask.jpg', fmask)
      

      【讨论】:

        猜你喜欢
        • 2020-12-27
        • 1970-01-01
        • 1970-01-01
        • 2015-01-19
        • 2014-09-17
        • 2018-03-24
        • 1970-01-01
        • 2013-09-16
        • 2022-06-18
        相关资源
        最近更新 更多