尝试使用numpy从灰度图像中创建rgb图像失败

问题描述 投票:0回答:1

我一直在努力想弄清楚最后一小时发生了什么。下面的代码显示了我面临的问题的重演。如果我从灰度初始图像设置img(第3行),我在尝试在其上绘制红线时会出错。如果我跳过绘制线,我在尝试将其叠加到第6行时会出现不同的错误。发生了什么?

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
import cv2

initial_img = mpimg.imread('minnie.jpg')
grayscale_img = cv2.cvtColor(initial_img, cv2.COLOR_RGB2GRAY)
img = np.zeros((*grayscale_img.shape, 3), dtype=np.uint8)           # 3
cv2.line(img, (0, 0), (100, 100), [255, 0, 0], 3)
weighted_img = cv2.addWeighted(img, initial_img, α=0.8, β=1., γ=0.) # 6
plt.imshow(grayscale_img)

我得到的错误:

文件“test.py”,第12行,在weighted_img = cv2.addWeighted(img,initial_img,α= 0.8,β= 1。,γ= 0。)#6 TypeError:只有size-1数组可以转换为Python标量

我希望在初始图像的顶部叠加一条红线,而我需要从其灰度变换中生成img

python opencv
1个回答
1
投票

根据the docs,你的论据顺序是错误的。尝试将您的第6行更改为:

weighted_img = cv2.addWeighted(img, alpha=0.8, src2=initial_img, beta=1., gamma=0.)
© www.soinside.com 2019 - 2024. All rights reserved.