Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在opencv中使用FindOnTours处理图像时出错_Python_Opencv_Image Processing_Contour - Fatal编程技术网

Python 在opencv中使用FindOnTours处理图像时出错

Python 在opencv中使用FindOnTours处理图像时出错,python,opencv,image-processing,contour,Python,Opencv,Image Processing,Contour,我正在尝试用opencv处理一个图像。这是我的测试代码 import numpy as np import cv2 im = cv2.imread('keli.jpg') imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY) thresh = cv2.adaptiveThreshold(im,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,7,2) contours,hierarchy = cv2

我正在尝试用opencv处理一个图像。这是我的测试代码

import numpy as np
import cv2
im = cv2.imread('keli.jpg')
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)

thresh = cv2.adaptiveThreshold(im,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,7,2)

contours,hierarchy = cv2.findContours(thresh,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
img = cv2.drawContours(im, contours, -1, (0,255,0), 1)

cv2.imwrite("result.jpg",img)
这里是错误

OpenCV Error: Assertion failed (src.type() == CV_8UC1) in adaptiveThreshold, file /build/buildd/opencv-2.4.8+dfsg1/modules/imgproc/src/thresh.cpp, line 796
Traceback (most recent call last):
  File "contour.py", line 6, in <module>
    thresh = cv2.adaptiveThreshold(im,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,7,2)
cv2.error: /build/buildd/opencv-2.4.8+dfsg1/modules/imgproc/src/thresh.cpp:796: error: (-215) src.type() == CV_8UC1 in function adaptiveThreshold
OpenCV错误:adaptiveThreshold文件/build/buildd/OpenCV-2.4.8+dfsg1/modules/imgproc/src/thresh.cpp第796行中的断言失败(src.type()==cv8uc1)
回溯(最近一次呼叫最后一次):
文件“contour.py”,第6行,在
thresh=cv2.自适应阈值(im,255,cv2.自适应阈值高斯C,cv2.阈值二进制,7,2)
cv2.error:/build/buildd/opencv-2.4.8+dfsg1/modules/imgproc/src/thresh.cpp:796:error:(-215)src.type()=函数自适应阈值中的CV_8UC1

如何解决此问题。

自适应阈值需要
CV\u 8UC1
(灰度)图像,因此只需传递
imgray
而不是
im

thresh = cv2.adaptiveThreshold(imgray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 7, 2)
你看到了吗?