在Python中使用OpenCV对表示灰度图像的2D数组列表进行图像稳定

2024-06-01 09:41:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用OpenCV包对数据(以hdf5格式存储的灰度强度图像)执行一些抖动/移动校正。通常,我以2D数组列表的形式读取数据(使用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()和EstimaterialGidTransform()函数来确保比较序列中每个帧的相同空间点


Tags: 数据图像列表格式数组读取数据cv2opencv
1条回答
网友
1楼 · 发布于 2024-06-01 09:41:38

您只需创建cv垫并为其设置数据:

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()

相关问题 更多 >