1
나는 이미지 (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()