У меня есть шмель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?
Я работаю на Пойнт Грей и постараюсь здесь помочь. Обратите внимание, что вы можете связаться с нами напрямую через наш сайт поддержки по адресу ptgrey.com/support/, и мы также поможем вам.
Глядя на код, который вы прикрепили, и на источник openCV, когда вы делаете cvImage, вы просто переназначаете указатель на данные, а не делаете фактическую копию данных.
Таким образом, до тех пор, пока размер данных остается неизменным (т. Е. Вы сохраняете его на уровне 24 бит на пиксель), любые изменения, которые вы вносите в изображение openCV, должны отражаться в данных flycapture (cf2Img) и иметь возможность сохранять данные должным образом.
Если вы можете объяснить проблемы, с которыми вы пытаетесь вернуться к изображению flycapture, или отправить нам исходный код того, как вы это делаете, мы можем помочь вам в дальнейшем.
Подводя итог, я ожидаю, что любые ваши манипуляции с cvImage после того, как предоставленный вами код должен быть просто отражен в cf2Img без необходимости обратного преобразования, при условии, что вы не меняете битовую глубину изображения.
Я надеюсь, что это поможет, но, пожалуйста, дайте мне знать, если я могу помочь что-то прояснить или вы можете привести пример неудачной конвертации обратно в fc2.
Спасибо,
Point Grey — поддержка