OpenCV в изображение FlyCapture2

У меня есть шмель2, и я использую flycapture SDK для захвата входящих изображений. Затем я преобразую левое изображение flycapture2 в формат openCV, чтобы выполнить с ним некоторые основные манипуляции. Затем я хотел бы вернуть его обратно в Flycapture SDK, но я не могу понять, как это сделать. Чтобы конвертировать из Flycapture в OpenCV, я делаю следующее:

FlyCapture2::Image cf2Img;
grabbedImage.Convert(FlyCapture2::PIXEL_FORMAT_BGR, &cf2Img );
unsigned int rowBytes = (double)cf2Img.GetReceivedDataSize()/(double)cf2Img.GetRows();
cv::Mat cvImage = cv::Mat( cf2Img.GetRows(), cf2Img.GetCols(), CV_8UC3, cf2Img.GetData(), rowBytes );

Затем я делаю свои манипуляции (определение порогов / обнаружение контуров / удаление фона и т. Д.), Затем я хотел бы передать это изображение обратно в Flycapture. Мои попытки конвертировать его обратно не сработали.

У кого-нибудь есть какой-нибудь код, который они использовали прежде, чтобы вернуть формат OpenCV обратно в Flycapture?

1

Решение

Я работаю на Пойнт Грей и постараюсь здесь помочь. Обратите внимание, что вы можете связаться с нами напрямую через наш сайт поддержки по адресу ptgrey.com/support/, и мы также поможем вам.

Глядя на код, который вы прикрепили, и на источник openCV, когда вы делаете cvImage, вы просто переназначаете указатель на данные, а не делаете фактическую копию данных.

Таким образом, до тех пор, пока размер данных остается неизменным (т. Е. Вы сохраняете его на уровне 24 бит на пиксель), любые изменения, которые вы вносите в изображение openCV, должны отражаться в данных flycapture (cf2Img) и иметь возможность сохранять данные должным образом.

Если вы можете объяснить проблемы, с которыми вы пытаетесь вернуться к изображению flycapture, или отправить нам исходный код того, как вы это делаете, мы можем помочь вам в дальнейшем.

Подводя итог, я ожидаю, что любые ваши манипуляции с cvImage после того, как предоставленный вами код должен быть просто отражен в cf2Img без необходимости обратного преобразования, при условии, что вы не меняете битовую глубину изображения.

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

Спасибо,
Point Grey — поддержка

1

Другие решения


По вопросам рекламы [email protected]