我试图通过切片 numpy 来将一个图像复制到另一个图像,但是我在 imshow 中得到了完整的黑色输出,如果使用dtype=int
,则有所不同,如下图所示。虽然在两个图像中像素值都相同。这是示例代码:
import sys
import cv2
import numpy as np
def main():
img = cv2.imread('ele.jpg', 1)
h, w, c = img.shape
img_copy = np.empty((h, w, c), dtype=int)
img_copy[0:h, 0:w] = img
print (img[50:54, 50:54])
print (img_copy[50:54, 50:54].shape)
cv2.imshow('ele', img)
cv2.imshow('ele-copy', img_copy)
cv2.waitKey(0)
if __name__=='__main__':
main()
答案 0 :(得分:5)
您使用了错误的数据类型。将img_copy
的数据类型更改为np.uint8
应该可以解决您的问题。
img_copy = np.empty((h, w, c), dtype=np.uint8)
但是,我只使用:
img_copy = img.copy()