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

时间:2019-12-03 06:56:36

标签: 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()

enter image description here

1 个答案:

答案 0 :(得分:5)

您使用了错误的数据类型。将img_copy的数据类型更改为np.uint8应该可以解决您的问题。

img_copy = np.empty((h, w, c), dtype=np.uint8)

但是,我只使用:

img_copy = img.copy()