1

我有一个 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?

4

1 回答 1

1

我为 Point Grey 工作,我会尽力在这里提供帮助。请注意,您可以通过我们的支持网站 ptgrey.com/support/ 直接与我们联系,我们也可以为您提供帮助。

查看您附加的代码并查看 openCV 源代码,当您制作 cvImage 时,您只是将指针重新分配给数据,而不是制作数据的实际副本。

因此,只要数据的大小保持不变(即,将其保持在每像素 24 位),您对 openCV 图像所做的任何更改都应反映在 flycapture (cf2Img) 数据中并能够正确保存。

如果您可以解释您在尝试返回到 flycapture 图像时遇到的问题,或者将您如何执行此操作的源代码发送给我们,我们可以为您提供进一步的帮助。

总而言之,我希望您在提供的代码之后对 cvImage 所做的任何操作都应该只反映在 cf2Img 中,而无需转换回来,假设您没有更改图像的位深度。

我希望这会有所帮助,但请让我知道我是否可以帮助澄清任何事情,或者您是否可以提供一个无法转换回 fc2 的示例。

谢谢,点灰色支持

于 2014-09-12T19:08:54.680 回答