在OpenCV中添加图像

时间:2017-06-09 09:54:27

标签: python c++ opencv numpy

您可以通过OpenCV函数cv2.add()或简单地通过numpy操作res = img1 + img2添加两个图像。两个图像应该具有相同的深度和类型,或者第二个图像可以是标量值。 我应该用什么来比较它们的深度和图像类型。我已经研究了

img.dtype
img.type()
img.depth()

请帮忙。

2 个答案:

答案 0 :(得分:0)

OpenCV使用numpy类型的图像。宽度为w且高度为h的单通道图像存储为大小为h,w的2D数组,具有N个通道的图像由大小为h,w,N的3d数组存储。您可以使用array.shape访问这些值。同样,您可以使用array.dtype访问该类型。

答案 1 :(得分:0)

标量值不是图像,它是标量值。 如果您向图像添加标量值,则该值将添加到图像中的所有像素(如果图像是彩色图像,则该值将添加到所有BRG图层中的所有像素)

我不知道您对图像深度的含义。如果是您要引用的图层数,则为YES,两个图像应具有相同的深度。但不是同一类型。可以将具有不同类型的图像一起添加。

但有时没有添加2个不同类型图像的意义。作为示例,具有float类型的图像具有在[0,1]范围内的像素值。并且具有int类型的图像具有在[0,255]范围内的像素值。因此,没有添加这些文件而没有将它们转换为相同类型的意义。

您可以按如下方式比较深度(图层数)和图像类型。

img.dtype    # to compare the type
img.shape    # to compare the number of layers