Быстрое 24-битное преобразование RGB в оттенки серого с помощью JMF, Java - PullRequest
0 голосов
/ 30 сентября 2010

Я занимаюсь разработкой простого (или, по крайней мере, так думаемого) настольного приложения на Java для обработки изображений в реальном времени. Я выбрал доступ к видеокадрам с помощью Java Media Framework (JMF). У меня есть камера PAL и я использую видео конвертер EasyCAP для оцифровки. Устройство отображается на моем компьютере под управлением Windows как устройство VFW, что позволяет получать данные в формате YUV и 24-битном RGB (32-битный недоступен).

Я уже разобрался с основами фреймворка. Я использую javax.media.Processor для управления медиа-данными и, для начала, хотел добавить кодек шкалы яркости (реализующий javax.media.Codec ) для дальнейшего рендеринг. В кодеке я могу получить доступ к отдельным кадрам как javax.media.Buffer объектов.

Какой самый быстрый способ выполнить преобразование в оттенках серого в Java? Я хотел бы придерживаться какого-то стандарта, такого как JAI или около того, поскольку я хотел бы иметь возможность легко выполнять дальнейшие преобразования, используя те же рамки / методы.

До сих пор я думал о следующем:

Добавление кодека в начале цепочки кодеков для преобразования 24-битного RGB в 32-битный RGB. Чем использовать java.nio.ByteBuffer для приведения байта [] к массиву пикселей [int] для дальнейшей обработки с фильтрами javax.awt.image . Я уже пытался использовать com.sun.media.codec.video.colorspace.RGBConverter , чтобы достичь этого, но без успеха.

Я был бы очень благодарен за любую помощь, надеюсь, кто-нибудь уже сделал это.

Буду признателен за любые предложения, касающиеся общей архитектуры приложения. Моя общая цель - реализовать алгоритм Java Optical Flow в Java, чтобы иметь возможность оценивать положение камеры в режиме реального времени, используя только визуальный ввод.

1 Ответ

0 голосов
/ 01 октября 2010

Посмотрите эту библиотеку в JH Labs (http://www.jhlabs.com/ip/filters/index.html). Он доступен с исходным кодом. Вы можете проверить реализацию там ... в частности GrayscaleFilter .. Также проверьте лицензию перед использованием. Если вам это нравится, пожалуйста, дайте кредит первоначальному автору ..:)

...