Python OpenCV在cv上崩溃。调整大小
在Windows7上运行OpenCV时,使用标准的python shell,我得到以下行为Python OpenCV在cv上崩溃。调整大小,python,opencv,Python,Opencv,在Windows7上运行OpenCV时,使用标准的python shell,我得到以下行为 import cv im = cv.LoadImageM("data/somefile.jpg") thumb = cv.CreateMat(im.rows/6, im.cols/6, im.type) print "Before" cv.Resize(im, thumb) print "After" 给出: >>> Before ======================
import cv
im = cv.LoadImageM("data/somefile.jpg")
thumb = cv.CreateMat(im.rows/6, im.cols/6, im.type)
print "Before"
cv.Resize(im, thumb)
print "After"
给出:
>>> Before
========================= RESTART ==========================
没有抛出错误,我应该查找什么?是什么导致OpenCV/Python中出现这种崩溃?OpenCV中的大多数内存分配都未经检查,可能会导致崩溃。OpenCV还试图通过C代码抛出异常,这可能导致任何情况发生(通常是崩溃),具体取决于编译方式
检查
im.rows/6
等的值是否符合您的预期,并且图像大小应在python内存限制内。我必须使用Visual Studio(Express)2010重建OpenCV,而不是MinGW,这才是关键,所以我猜它最终只是一个错误的构建。我不认为你的程序崩溃了,它正在做你告诉它做的事情。
请参阅下面的代码,我将openCv 2.2与python 2.7.2一起使用。请尝试使用WaitKey()来防止崩溃
import cv
cv.NamedWindow("win",cv.CV_WINDOW_AUTOSIZE)
im= cv.LoadImageM("image.jpg")
thumb= cv.CreateMat(im.rows/3, im.cols/3, im.type)
cv.Resize(im, thumb)
cv.ShowImage("win",thumb)
cv.WaitKey(10000)
该代码适用于我的OpenCV 2.2二进制文件。它至少应该打印出“After”一行,不是吗?