【问题标题】:Adding images in OpenCV [closed]在 OpenCV 中添加图像 [关闭]
【发布时间】:2017-11-11 06:58:10
【问题描述】:

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

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

请帮忙。

【问题讨论】:

    标签: python c++ opencv numpy


    【解决方案1】:

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

    我不知道您所说的图像深度是什么意思。如果它是您所指的层数,那么是,两个图像应该具有相同的深度。但不是同一类型。不同类型的图片可以叠加在一起。

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2012-10-21
        • 1970-01-01
        • 1970-01-01
        • 2017-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-23
        • 1970-01-01
        相关资源
        最近更新 更多