以下代码为什么报错:NoneType object has no attribute ndimimport cv2 as cvimport numpy as npimport matplotlibpyplot as pltdef showimg if imgndim == 2 pltimshowimg cmap=gray else pltimshowcvcv
在这行代码中:cnts, hiers = cv.findContours (edge2,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE),findContours方法返回的是一个元组,第一个元素为轮廓数组,第二个元素为层次结构数组。但是在代码中只获取了第一个元素,第二个元素hiers为None,因此在下一行代码中调用了img.shape的属性时出现了'NoneType' object has no attribute 'ndim'的错误。需要修改为:cnts, hiers = cv.findContours (edge2,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE)[-2:],这样就只获取元组的最后两个元素,即使第二个元素为None也不会影响程序的运行。
原文地址: https://www.cveoy.top/t/topic/bMj9 著作权归作者所有。请勿转载和采集!