我有一个bumblebee2,我正在使用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?
发布于 2014-09-13 03:08:55
我在Point Grey工作,我会尽力帮你。请注意,您可以通过我们的支持网站ptgrey.com/ support /直接与我们联系,我们也可以为您提供帮助。
查看您附加的代码和openCV源代码,当您创建cvImage时,您只是重新分配指向数据的指针,而不是制作数据的实际副本。
因此,只要数据的大小保持不变(即,将其保持为每像素24位),则对openCV图像所做的任何更改都应反映在flycapture (cf2Img)数据中,并能够正确保存。
如果您可以解释您在尝试移回flycapture图像时遇到的问题,或者将您如何做到这一点的源代码发送给我们,我们可以进一步帮助您。
总而言之,我希望您在提供代码之后对cvImage所做的任何操作都应该只反映在cf2Img中,而不需要转换回来,假设您没有更改图像的位深度。
我希望这会有所帮助,但请告诉我是否我可以帮助澄清任何事情,或者您是否可以提供一个无法转换回fc2的示例。
谢谢,Point Grey Support
https://stackoverflow.com/questions/25632297
复制相似问题