为什么我的cv2.findContours函数有这个问题?

时间:2016-04-20 17:35:54

标签: python python-2.7 opencv

  

追踪(最近一次通话):     文件“C:/Users/michail.gakas/Desktop/python scripts / counters.1py.py”,第10行,in       imgray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)   错误:C:\ builds \ master_PackSlaveAddon-win64-vc12-static \ opencv \ modules \ imgproc \ src \ color.cpp:7456:错误:(-215)scn == 3 || scn == 4 in function cv :: ipp_cvtColor

我的代码:

import numpy as np
import cv2

img = cv2.imread('star.jpg',0)

imgray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
im2, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
#cv2.waitKey(0)
#cv2.destroyAllWindows()

我使用的是python 2.7 CV3,但我在

之前安装了CV2

1 个答案:

答案 0 :(得分:1)

我现在没有OpenCV,但是我看到你做了

send_all

但您可能想要做的是将其打开为:

img = cv2.imread("star.jpg", 0)

或将其“未更改”打开为:

img = cv2.imread("star.jpg", 1)

您所做的是以灰度模式打开图像,然后尝试将其转换为灰度图像。该错误实际上表明img = cv2.imread("star.jpg", -1) 找不到具有3或4个通道的图像,而assert来自彩色jpg图像(3个通道)或彩色png图像(4个通道,1有时用于a​​lpha )到1通道灰度图像。 Alpha函数在此函数中被丢弃。请使您的生活更轻松,并使用cv2提供的官方标志,以便更轻松地编写代码。

BGR2GRAYSCALE