#python #opencv #memory-leaks
#python #opencv #утечки памяти
Вопрос:
Я недавно обновил OpenCV с 2.4.9 до 3.0.0-dev, чтобы использовать некоторые новые функции в интерфейсе python, который используется в OpenCV с учебным пособием по Python на официальном сайте.
Я использую это для предварительной сборки для установки http://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.0-ocl-tech-preview/tp1 /
Но у меня была проблема с захватом камеры, а также с чтением изображения в цикле while. например
import cv2
cap = cv2.VideoCapture(0)
num = 0
while True:
ret,frame = cap.read()
cv2.imshow('video',frame)
k = cv2.waitKey(1)
if k == ord('q'):
break
elif k == ord('c'):
cv2.imwrite('photo' str(num) '.jpg',frame)
num = 1
cap.release()
cv2.destroyAllWindows()
а также, если я изменю cap.read() на cv2.imread()
import cv2
num = 0
while True:
frame = cv2.imread('D:/Boat/work/hga_counter/test_photo/photo0.jpg')
cv2.imshow('video',frame)
k = cv2.waitKey(0)
if k == ord('q'):
break
elif k == ord('c'):
cv2.imwrite('photo' str(num) '.jpg',frame)
num = 1
cv2.destroyAllWindows()
Память, используемая python.exe увеличиваясь со временем, пока он не заполнится полностью.
Устарел ли мой установщик OpenCV, и я должен скомпилировать OpenCV из самого обновленного источника? или есть какое-либо другое решение?
Комментарии:
1. «Устарел ли мой установщик OpenCV» — нет. 3.0 скорее «из будущего», но, тем не менее, он совершенен. у вас такие же проблемы с 2.4.9?
2. Нет, мой 2.4.9 может работать отлично. Я обновляю это, потому что некоторые функции не имеют интерфейса в Python. Мой «Устаревший» означает, была ли эта ошибка исправлена в текущем главном коммите в Github, потому что установщик был опубликован в феврале 2014 года.
3. ах, приятно знать. когда вы его загрузили? возможно, эта ошибка (исправлена 3.2.2014)
4. Да!, вероятно, это проблема. Я только вчера загрузил свой установщик, но Sourceforge сказал, что он не обновлялся с февраля. Теперь я пытаюсь собрать OpenCV 3 из главной ветки, но это все равно не удалось, ха-ха. Я довольно плох в этом.
5. да, тот же src. неудивительно. либо обновите код с github, либо примените тот же патч . установщик, который не обновлен, стоило бы сделать проблему imho.