【问题标题】:Image stabilization on a list of 2D arrays representing grayscale images using OpenCV in Python在 Python 中使用 OpenCV 对表示灰度图像的二维数组列表进行图像稳定
【发布时间】:2020-05-25 12:20:32
【问题描述】:

我正在尝试使用 OpenCV 包对数据(以 hdf5 格式存储的灰度强度图像)进行一些抖动/移动校正。通常,我将数据作为二维数组列表读取(使用 imshow 执行颜色图)。

使用cap = cv2.VideoCapture('video.mp4') 从视频文件中读取帧的标准方法似乎不接受我的 2D numpy 数组列表,它看起来像:

[[243.25 228.5  238.75 ... 277.75 302.5  292.25]
 [255.   256.5  234.75 ... 295.25 289.25 272.5 ]
 [252.5  238.5  231.5  ... 294.25 279.75 285.  ]
 ...
 [253.   248.75 245.25 ... 334.5  282.   335.  ]
 [268.75 253.25 280.75 ... 329.75 338.5  329.25]
 [261.   252.75 254.75 ... 314.25 338.25 315.75]]

有什么方法可以做到这一点,而不必将文件保存为图像,然后是视频,然后通过 cv2 将它们读回?

我想使用 cv2 中的 goodFeaturesToTrack()、calcOpticalFlowPyrLK() 和estimateRigidTransform() 函数来确保我比较系列中每一帧的空间中的相同点。

【问题讨论】:

    标签: python arrays opencv jitter


    【解决方案1】:

    您只需要创建一个 cv Mat 并为其设置数据:

    img = numpy.zeros([5,5,3])
    img[:,:,0] = numpy.ones([5,5])*64/255.0
    img[:,:,1] = numpy.ones([5,5])*128/255.0
    img[:,:,2] = numpy.ones([5,5])*192/255.0
    
    cv2.imwrite('color_img.jpg', img)
    cv2.imshow("image", img)
    cv2.waitKey()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 2018-03-18
      • 2019-10-16
      • 2020-12-24
      • 2013-04-15
      • 2015-04-22
      • 1970-01-01
      相关资源
      最近更新 更多