我写了以下代码:import cv2 import lxml.etree as xmlimport osimport shutilfor filename in os.listdir(paths['labels']): with open(paths['labels']+filename,'r'): img2 = cv2.imread(filename, cv2.IMREAD_COLOR) # Reading same image in another # variable and converting to gray scale. img = cv2.imread(filename, cv2.IMREAD_GRAYSCALE) # Converting image to a binary image # ( black and white only image). #_, threshold = cv2.threshold(img, 110, 255, cv2.THRESH_BINARY) blur = cv2.GaussianBlur(img,(5,5),0) _, threshold = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU) # Detecting contours in image. contours, _= cv2.findContours(threshold, cv2.RETR_TREE, #here it finds the total number of contours, i.e, number of rectangles in the image file cv2.CHAIN_APPROX_SIMPLE)我在第 18 行中收到错误:(blur = cv2.GaussianBlur(img,(5,5),0))错误:(-215:Assertion failed) dims <= 2 && step[0] > 0 in function 'cv::Mat::locateROI'代码之前工作正常,错误突然出现。我尝试将图像扩展名从jpg更改为png,但错误仍然存在。
1 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
当您的代码未收到正确的图像(即图像的路径可能无效或图像本身存在一些问题)时,最常发生此错误。问题是,您可以尝试检查您的图像是否正确加载:
cv2.imshow('image',img)
此命令用于在OpenCV中显示图像,我认为您显然很熟悉。因此,在使用高斯模糊之前,请使用此命令来验证您提供的图像是否正确加载。
如果图像没有显示,那么您可以确定您正面临上述问题之一!您现在将在此行中收到断言失败错误。
PS:ROI的完整形式是感兴趣的区域。在您的例子中,OpenCV无法找到它将执行高斯模糊的感兴趣区域。
添加回答
举报
0/150
提交
取消