gpt4 book ai didi

python-3.x - 为什么 cv2.addweighted() 给出一个错误,即操作既不是 'array op array' ,也不是 'array op scalar' ,也不是 ' scalar op array' ?

转载 作者:太空宇宙 更新时间:2023-11-03 20:46:15 34 4
gpt4 key购买 nike

这是我的图像混合代码,但 cv2.addweighted() 函数有问题:

import cv2
import numpy as np

img1 = cv2.imread('1.png')
img2 = cv2.imread('messi.jpg')
dst= cv2.addWeighted(img1,0.5,img2,0.5,0)

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

错误是:

Traceback (most recent call last):
dst= cv2.addWeighted(img1,0.5,img2,0.5,0)
cv2.error: C:\projects\opencv-python\opencv\modules\core\src\arithm.cpp:659: error: (-209) The operation is neither 'array op array' (where arrays have the same size and the same number of channels), nor 'array op scalar', nor 'scalar op array' in function cv::arithm_op

问题是什么?我搜索了这个函数,我确定这个函数是正确的。我没有理解错误!

最佳答案

当你运行它时:

dst= cv2.addWeighted(img1,0.5,img2,0.5,0)

错误信息:

error: (-209) The operation is neither 'array op array' 
(where arrays have the same size and the same number of channels),
nor 'array op scalar', nor 'scalar op array' in function cv::arithm_op

可能的原因:

  1. img1/img2 中的一个或多个不是np.ndarray,例如None。也许你还没有读过。
  2. img1.shape 不等于 img2.shape。它们有不同的尺寸。

如果您不确定它们是否正确,您应该在直接执行 cv2.addWeighted 之前检查 img1.shapeimg2.shape大小相同。

或者,如果你想在大图像上添加小图像,你应该使用ROI/mask/slice 操作。

关于python-3.x - 为什么 cv2.addweighted() 给出一个错误,即操作既不是 'array op array' ,也不是 'array op scalar' ,也不是 ' scalar op array' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47884187/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com