簡體   English   中英

使用cv2和numpy的奇數圖像

[英]odd image using cv2 and numpy

我正在運行以下代碼:

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)

我得到這個結果: 在此處輸入圖片說明 該圖像是高度為720p,寬度為1280的RGB圖像。有什么想法如何解決?

編輯 :我從分辨率為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)

我有一個很好的形象: 在此處輸入圖片說明

它可以幫助解決這個難題嗎?

如果您在終端中使用ImageMagick生成像這樣的紅藍色漸變,您將看到代碼可以正常工作:

convert -size 1280x720 gradient:red-blue -depth 8 rgb:raw_image

在此處輸入圖片說明


我推斷您的gst “不高興”


您共享的圖像包含以下內容:

在此處輸入圖片說明

我使用終端中的ImageMagick將其轉換為JPEG:

convert -size 1280x720 -depth 8 rgb:raw_image.dms result.jpg

我再次推斷出你的gst的東西是“不高興”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM