Необходимо было выполнять фотоснимки фотоаппаратом автоматизировано.
Решено было делать используя Питон. Нашли модуль pycanon, но он оказался только под Windows. Пробывали утилиту gphoto2, которая должна управлять фотокамерами, ничего не получилось. Решили, что для наших нужд подойдёт качественная WEB камера. Находил, много решений снятия изображения с камеры, но наткнулся на OpenCV. Мне очень понравилось его исполнение, очень мощный, охватывает почти все аспекты обработки потокового видео, изображений. Вот пример, который заработал, от которого будем отталкиваться.
Решено было делать используя Питон. Нашли модуль pycanon, но он оказался только под Windows. Пробывали утилиту gphoto2, которая должна управлять фотокамерами, ничего не получилось. Решили, что для наших нужд подойдёт качественная WEB камера. Находил, много решений снятия изображения с камеры, но наткнулся на OpenCV. Мне очень понравилось его исполнение, очень мощный, охватывает почти все аспекты обработки потокового видео, изображений. Вот пример, который заработал, от которого будем отталкиваться.
import os import opencv.adaptors from opencv import highgui #Получаем изображение с камеры def get_image(camera): #highgui. GUI и Media IO высшего уровня. #Захватывает и возвращает экран с камеры, или файла. im = highgui.cvQueryFrame(camera) #Возвращает загаловок произвольного массива. im = opencv.cvGetMat(im) #Конвертируем изображения с Ipl image в PIL return opencv.adaptors.Ipl2PIL(im) im=None #Инициализируем структуру CvCapture для чтения с камеры. camera= highgui.cvCreateCameraCapture(0) im = get_image(camera) os.chdir("~") fname='image_webcamera.png' #Сохраняем изображение. im.save(fname, "PNG")
Благодарю
ОтветитьУдалитьСкажите, а привязка OpenCV + Python, работает для Python2 или Python3 или для Python2 и Python3 одновременно?
ОтветитьУдалитьДанный пример работал под Python2.5 под Ubuntu. Python 3.0 - очень неудобный в плане расширений. Советую Использовать Python2.7, Ubuntu тоже советует - по умолчанию, Google App Engine готовит поддержку Python2.7, хотя когда-то заявлялась поддержка Python3.0.
ОтветитьУдалитьМодуль который мспользовался в данном коде является обёрткой OpenCV библиотеки. Не знаю как поведёт себя под другими платформами ...