dan*_*ari 0 python opencv image-processing
我试图通过切片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()
Run Code Online (Sandbox Code Playgroud)
您使用了错误的数据类型。更改img_copy
to的数据类型np.uint8
应该可以解决您的问题。
img_copy = np.empty((h, w, c), dtype=np.uint8)
Run Code Online (Sandbox Code Playgroud)
但是,我会简单地使用:
img_copy = img.copy()
Run Code Online (Sandbox Code Playgroud)