我在python中使用opencv的图像的高斯模糊期间遇到错误。代码之前工作正常,突然出现错误

我写了以下代码:


import cv2 

import lxml.etree as xml

import os

import shutil

for 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,但错误仍然存在。


蝴蝶不菲
浏览 155回答 1
1回答

拉莫斯之舞

当您的代码未收到正确的图像(即图像的路径可能无效或图像本身存在一些问题)时,最常发生此错误。问题是,您可以尝试检查您的图像是否正确加载:cv2.imshow('image',img)此命令用于在OpenCV中显示图像,我认为您显然很熟悉。因此,在使用高斯模糊之前,请使用此命令来验证您提供的图像是否正确加载。如果图像没有显示,那么您可以确定您正面临上述问题之一!您现在将在此行中收到断言失败错误。PS:ROI的完整形式是感兴趣的区域。在您的例子中,OpenCV无法找到它将执行高斯模糊的感兴趣区域。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python