python-2.7 - Python-OpenCV cv2 OpenCV错误: Assertion failed (scn == 3 || scn == 4) in unknown function,文件..\..\..\modules\imgproc\src\color.cpp

标签 python-2.7 numpy opencv image-processing

我正在尝试使用 cv2 在 python 中学习轮廓。

我尝试了教程指南中给出的以下代码:

import cv2
import numpy as np
from matplotlib import pyplot as plt

im = cv2.imread('C:\Users\Prashant\Desktop\test.jpg')
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
img = cv2.drawContour(im, contours, -1, (0,255,0), 3)
cv2.imshow('Image1',img)

我收到这个错误:

File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 540, in runfile
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in unknown function, file ..\..\..\modules\imgproc\src\color.cpp, line 3402
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
   execfile(filename, namespace)
 File "C:/Users/Prashant/.spyder2/.temp.py", line 15, in <module>
   imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
 cv2.error: ..\..\..\modules\imgproc\src\color.cpp:3402: error: (-215) scn == 3 || scn == 4

最佳答案

它说在应用函数 cv2.cvtColor 之前,您的输入图像应该有 3 或 4 个 channel 。

因此,在通过 print im.shape 应用该功能之前,请检查您的图像形状。如果结果是 None type(大多数情况下,这是问题所在),则您的图像未正确加载,很可能是因为您的路径不正确。

关键是你的图像应该有 3 个维度,深度

关于python-2.7 - Python-OpenCV cv2 OpenCV错误: Assertion failed (scn == 3 || scn == 4) in unknown function,文件..\..\..\modules\imgproc\src\color.cpp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20822288/

相关文章:

python - 如何从 pandas 数据框中删除不在列表中的某些值?

c++ - 使用 openCV 匹配图像

python - 在 python 中旋转大图像 (85000x85000x3)

opencv - Anaconda环境中的OpenCV imshow错误

python - 在python中的一行内排列

python-2.7 - 属性错误 : 'WebDriver' object has no attribute 'id'

python - Tornado 异步 http 客户端 block

python - 使用类对象替换 sys.modules 中的当前模块时,导入的模块变为 None

python-2.7 - 如何解析这个 "TypeError: cannot concatenate ' str' 和 'datetime.time' 对象”

python - 如何在 Pandas 中选择具有特定字符串模式的行?