1
私はイメージ(numpy配列)を文字列に変換しています。次に、この文字列を元の寸法の数の少ない配列に変換します。したがって、両方のnumpy配列は等しいです。numpy.array_equals()
は、配列が等しくなるようにTrue
を返します。cv2.imshow()黒い画面を表示
cv2.imshow()
を元のnumpyアレイに呼び出すと、画像が印刷されます。しかし、新しい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()