【发布时间】:2018-07-24 12:28:02
【问题描述】:
我正在运行以下代码:
import cv2
import numpy
f = open("raw_image",'rb')
raw_image = f.read(720 * 1280 * 3)
image = numpy.fromstring(raw_image, dtype='uint8')
image = image.reshape((720, 1280, 3))
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey(1)
我得到了这个结果: 该图像是 RGB 图像,高度为 720p,宽度为 1280。 任何想法如何解决它?
编辑:我从分辨率为 720x1280 的相机接收图像。图像是彩色图像。我从中读取字节的文件raw_image 包含命令的输出:
gst-launch-1.0 fdsrc ! h264parse ! avdec_h264 ! filesink location=/dev/stdout
如您所见,接收到的图像格式错误,我不知道如何修复它。
EDIT2:这是原始图像:https://drive.google.com/file/d/1hPRUEVNFiKmiUFbzksUlzzC04teml4hw/view?usp=sharing
EDIT3: 运行代码后(注意:我只显示前 720*1280 字节):
raw_image = f.read(720 * 1280 * 3)
raw_image=raw_image[:720 * 1280]
image=numpy.frombuffer(raw_image,dtype='uint8')
image = image.reshape((720,1280))
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey(1)
我得到了这个结果: 当我将左侧的一些部分向右移动时,添加以下行:
image=numpy.concatenate((image[:,141:],image[:,:141]),axis=1)
它能帮助解开谜团吗?
【问题讨论】:
-
对不起,你的问题不是很清楚,你想达到什么目标?为什么要将图像重塑为相同的尺寸? CV2 显示这个扭曲的图像是你的问题吗?
-
我添加了更多信息:)
-
这个命令
gst-launch-1.0 fdsrc ! h264parse ! avdec_h264 ! filesink location=/dev/stdout有什么作用?它对扭曲图像负责吗?你先验证了吗? -
可以分享一下图片吗?然后人们可以在没有猜测的情况下进行工作。谢谢。
-
完成!好主意!
标签: python-3.x opencv cv2