Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python OpenCV imresize崩溃程序_Python_Python 2.7_Opencv - Fatal编程技术网

Python OpenCV imresize崩溃程序

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

我在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 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插件时意外退出”。你知道为什么会发生这种情况吗?只需尝试一件事:你能显示图像并确保它已正确加载吗?