Python OpenCV imresize崩溃程序
我在Python2.7.5中使用OpenCV,我遇到了一个奇怪的问题:调整图像大小会导致程序崩溃。以下是导致问题的代码:Python OpenCV imresize崩溃程序,python,python-2.7,opencv,Python,Python 2.7,Opencv,我在Python2.7.5中使用OpenCV,我遇到了一个奇怪的问题:调整图像大小会导致程序崩溃。以下是导致问题的代码: def NN(tiles, testData): img1 = cv.imread(tile) img1 = cv.resize(img1,(0,0), fx = 0.2, fy = 0.2) #Create pair to pass into findInlier as one #argument (for
def NN(tiles, testData):
img1 = cv.imread(tile)
img1 = cv.resize(img1,(0,0), fx = 0.2, fy = 0.2)
#Create pair to pass into findInlier as one
#argument (for multiprocessing
pairs = [(img1, img2) for img2 in testData]
p = multiprocessing.Pool(processes=12)
inliers = p.map(findInlier,pairs)
tiles
是图像的字符串,testData
是OpenCV图像的列表。运行上面的代码可以得到以下输出:
Traceback (most recent call last):
File "./main.py", line 108, in <module>
main()
File "./main.py", line 104, in main
NN(tiles, images)
File "./main.py", line 75, in NN
inliers = p.map(findInlier,pairs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py", line 250, in map
return self.map_async(func, iterable, chunksize).get()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py", line 554, in get
raise self._value
TypeError: object of type 'NoneType' has no len()
回溯(最近一次呼叫最后一次):
文件“/main.py”,第108行,在
main()
文件“/main.py”,第104行,在main中
NN(瓷砖、图像)
文件“/main.py”,第75行,NN中
inliner=p.map(findInlier,成对)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py”,第250行,在地图中
返回self.map\u async(func,iterable,chunksize).get()
get中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py”,第554行
提升自我价值
TypeError:类型为“NoneType”的对象没有len()
但是,如果我删除下面的行img1=cv.resize(img1,(0,0),fx=0.2,fy=0.2)
一切正常。我不知道为什么
如果有任何帮助,我们将不胜感激。您是否尝试过在调用
cv.resize
后立即检查img1
的类型?在循环中手动检查将findInlier
应用于对的结果如何,这样您就可以找到抛出该错误的对了?堆栈跟踪不是说,inliers=p.map(findInlier,pairs)
中的对没有?嗯……所以我更改了大小,使图像不会太小(从0.2到0.5)但一旦我这样做了,就会出现一个弹出窗口错误,提示“Python在使用libopencv_core.2.4.dylib插件时意外退出”。你知道为什么会发生这种情况吗?只需尝试一件事:你能显示图像并确保它已正确加载吗?