Я пытаюсь захватить кадры и просмотреть видео с USB-микроскопа Bodelin Proscope HR. У меня есть простое приложение Cocoa, использующее AVCaptureSession
с AVCaptureDeviceInput
для Proscope HR и AVCaptureVideoPreviewLayer
для отображения вывода.
Все это отлично работает со встроенной камерой iSight, но вывод Proscope HR искажен до неузнаваемости.
Используя прилагаемое программное обеспечение Proscope, я иногда вижу те же искажения при попытке использовать более высокие разрешения. Я подозреваю, что используемое аппаратное обеспечение довольно слабое, и это подкрепляется тем фактом, что при самом низком разрешении 320x200 прилагаемое программное обеспечение работает со скоростью 30 кадров в секунду, но когда вы увеличиваете разрешение, частота кадров резко падает, вплоть до 15 кадров в секунду при разрешении 640x480, вплоть до 3,75 кадров в секунду при максимальном разрешении 1600x1200.
РЕДАКТИРОВАТЬ: я изначально думал, что, возможно, частота кадров, которую пытается использовать AVCaptureSession, слишком высока, но с тех пор я подтвердил, что (по крайней мере, теоретически) сеанс захвата запрашивает частоту кадров, объявленную AVCaptureDevice.
Я должен отметить, что я уже испробовал все стандартные AVCaptureSessionPreset*
предустановки констант, определенные в заголовках, и ни один из них не улучшил результаты Proscope HR. (Однако они, похоже, повлияли на встроенный iSight примерно ожидаемым образом.)
Вот снимок экрана, показывающий искаженный вывод ProScope HR:
И просто для сравнения вывод обычной веб-камеры: