1
我正在將圖像(numpy數組)轉換爲字符串。然後我將這個字符串轉換回原始維度的一個numpy數組。因此,numpy數組都是相等的 - 事實上,numpy.array_equals()
也返回True
,以使數組相等。cv2.imshow()給黑屏
當我在原始numpy數組上調用cv2.imshow()
時,它會打印圖像。但是當我在新的numpy數組上調用cv2.imshow()
時,我只能看到黑屏。
這是怎麼發生的?兩個numpy數組是相等的,所以我應該得到相同的輸出嗎?
import numpy as np
import cv2
frame = cv2.imread('/home/nirvan/img_two.png' , cv2.IMREAD_GRAYSCALE)
string = ' '.join(map(str,frame.flatten().tolist()))
frameCopy = frame.copy()
x = frame.shape[0]
y = frame.shape[1]
frame = string.strip()
temp = [ int(t) for t in frame.split(' ')]
temp = np.array(temp)
temp = temp.reshape((x,y))
print(np.array_equal(frameCopy , temp))
#gives black screen
cv2.imshow('l' , np.array(temp))
#gives proper image
#cv2.imshow('l' , np.array(frameCopy))
cv2.waitKey()