opencv-python addWeighted() 错误 - 输入参数的大小不匹配

Posted

技术标签:

【中文标题】opencv-python addWeighted() 错误 - 输入参数的大小不匹配【英文标题】:opencv-python addWeighted() error - Sizes of input arguments do not match 【发布时间】:2017-10-05 07:27:51 【问题描述】:

我有一个简单的代码来尝试将 opencv 图像与addWeighted() 混合 功能。它向我显示了错误

输入参数的大小不匹配

以下是我的代码

import cv2
import numpy as np

img1 = cv2.imread('/home/jianyepa/Downloads/gtr1.jpg')
img2 = cv2.imread('/home/jianyepa/Downloads/r1.png')

dst = cv2.addWeighted(img1,0.7,img2,0.3,0)

cv2.imshow('dst', dst)
cv2.waitkey(0)
cv2.destroyAllWindows

我用img.shape检查了两张图片的大小和通道,两张图片都显示(720、1280、3)。我不知道为什么会出现这个错误。

请帮忙。谢谢。

【问题讨论】:

尝试将 .png 文件转换为 .jpg 文件,然后执行相同操作。 @JeruLuke 是的,你解决了我的问题。请添加为答案。谢谢。 【参考方案1】:

可能的问题列表:

    图像的大小和通道数不匹配 或者两个图像的文件类型可能不同。

在你的情况下,它不是第一个。两张图片大小相同,通道数也相同。

但问题在于不同的图像文件类型。 .png 文件有另一个称为 alpha 通道的通道,它在 .jpg 文件中不存在。这会导致您的问题。

【讨论】:

根本原因:不同的文件类型。

以上是关于opencv-python addWeighted() 错误 - 输入参数的大小不匹配的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV - 输入参数的大小不匹配 - addWeighted

addWeighted 函数中的 OpenCV (gamma)

addWeighted函数的运用

OpenCV-数组加权和cv::addWeighted

opencv入门之二感兴趣区域ROI,线性混合addWeighted

opencv4opencv视频教程 C++ 6图像混合线性混合混合权重相加addWeighted()混合加add()混合乘multiply()