您可以通过OpenCV函数cv2.add()
或简单地通过numpy操作res = img1 + img2
添加两个图像。两个图像应该具有相同的深度和类型,或者第二个图像可以是标量值。
我应该用什么来比较它们的深度和图像类型。我已经研究了
img.dtype
img.type()
img.depth()
请帮忙。
答案 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