jpg和png图像的按位操作错误

时间:2017-08-10 11:20:36

标签: python-3.x bitwise-operators opencv3.0

我陷入了有线问题。按位运算的一个非常简单的例子。但是,在处理png图像时会显示错误。

import matplotlib.pyplot as plt
import numpy as np
import cv2
image = mpimg.imread('test1.png')
mask = np.zeros((image.shape[0], image.shape[1], 3), dtype=np.uint8)
result = cv2.bitwise_and(image,mask)

它将显示有关bitwise_and的以下错误:

该操作既不是'数组操作数组'(其中数组具有相同的大小和类型),也不是'数组操作标量',也不是函数binary_op中的'标量操作数组'

处理test2.jpg

时,操作没有错误

test1.png test1.png

test2.jpg test2.jpg

我知道第一张图片看起来像是灰色图片,但确实有三个频道!

1 个答案:

答案 0 :(得分:0)

我认为.png图像有四个通道(一个用于不透明度)。因此,您尝试对两个具有不同通道数的图像(jpg - 3和png - 4)进行操作。