复制的 OpenCV 图像与原始图像不同

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)

在此处输入图片说明

ndr*_*plz 5

您使用了错误的数据类型。更改img_copyto的数据类型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)