![](/img/trans.png)
[英]Determine if certain parts of an RGB image are colored or grayscale using numpy
[英]Trying to create an rgb image out of a grayscale image using numpy fails
我一直在努力弄清楚最近一小时的情况。 下面的代码显示了我所面临的问题。 如果从灰度初始图像设置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:仅大小为1的数组可以转换为Python标量
我希望在初始图像上方叠加一条红线,同时我需要从其灰度转换中生成img
。
根据docs ,您有错误的参数顺序。 尝试将“ 6”行更改为:
weighted_img = cv2.addWeighted(img, alpha=0.8, src2=initial_img, beta=1., gamma=0.)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.