Python 在opencv中使用FindOnTours处理图像时出错
我正在尝试用opencv处理一个图像。这是我的测试代码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
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)
你看到了吗?