是否可以在OpenCV上存储特定图像上的数据?

是否可以在OpenCV上存储特定图像上的数据?,opencv,memory,image-processing,computer-vision,Opencv,Memory,Image Processing,Computer Vision,我只是想知道这是否可能。例如,如果要在特定图像()中查找轮廓,是否可以存储表示特定图像中轮廓的数据?然后我可以有另一个图像,检测轮廓并存储它们,然后比较每个图像的轮廓数据,看看是否有具有相关几何特征的对象 你的问题不够清楚,所以我为我事先回答得不好而道歉。无论如何,让我试着回答他们: 我可以在特定图像中存储表示轮廓的数据吗 如果您这样做,您可能会注意到findContours()使用一个参数作为输入,另一个参数作为输出,因此您不能将输入image传递给此方法,也不能将其用于存储输出等高线,因为此

我只是想知道这是否可能。例如,如果要在特定图像()中查找轮廓,是否可以存储表示特定图像中轮廓的数据?然后我可以有另一个图像,检测轮廓并存储它们,然后比较每个图像的轮廓数据,看看是否有具有相关几何特征的对象

你的问题不够清楚,所以我为我事先回答得不好而道歉。无论如何,让我试着回答他们:

  • 我可以在特定图像中存储表示轮廓的数据吗
  • 如果您这样做,您可能会注意到
    findContours()
    使用一个参数作为输入,另一个参数作为输出,因此您不能将输入
    image
    传递给此方法,也不能将其用于存储输出
    等高线
    ,因为此方法将引发异常(我在过去尝试过此方法)

  • 我可以有另一个图像,检测轮廓并存储它们,然后比较每个图像的轮廓数据,看看是否有具有相关几何特征的对象
  • 可以分析两条等高线并相互比较。事实上,本节分享了Python代码,该代码使用hu矩来演示如何实现这一点(平移、旋转和缩放不变):

    import cv2
    import numpy as np
    
    img1 = cv2.imread('star.jpg',0)
    img2 = cv2.imread('star2.jpg',0)
    
    ret, thresh = cv2.threshold(img1, 127, 255,0)
    ret, thresh2 = cv2.threshold(img2, 127, 255,0)
    contours,hierarchy = cv2.findContours(thresh,2,1)
    cnt1 = contours[0]
    contours,hierarchy = cv2.findContours(thresh2,2,1)
    cnt2 = contours[0]
    
    ret = cv2.matchShapes(cnt1,cnt2,1,0.0)
    print ret