小编run*_*ken的帖子

opencv cvtColor dtype问题(错误:( - 215))

我偶然发现了这个dtype问题并希望它对某些人有所帮助.

通常我们会像这样转换颜色,这有效:

img = cv2.imread("img.jpg"), 0)
imgColor=cv2.cvtColor(img , cv2.COLOR_GRAY2BGR)
Run Code Online (Sandbox Code Playgroud)

但有时您可能会先将图像标准化:

img = cv2.imread("img.jpg"), 0)/255.
imgColor=cv2.cvtColor(img , cv2.COLOR_GRAY2BGR)
Run Code Online (Sandbox Code Playgroud)

这将导致此错误:

错误:(-215)深度== CV_8U || 深度== CV_16U || 深度== CV_32F函数> cv :: cvtColor

关键是,在前一个例子中,dtype是uint8,而在后者中它是float64.要更正此问题,请添加一行:

img = cv2.imread("img.jpg"), 0)/255.
img=img.astype(numpy.float32)
imgColor=cv2.cvtColor(img , cv2.COLOR_GRAY2BGR)
Run Code Online (Sandbox Code Playgroud)

python opencv numpy

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

numpy ×1

opencv ×1

python ×1