2014-09-02 31 views
1

我有一個bumblebee2,我正在使用flycapture SDK來捕獲傳入的圖像。然後,我將左邊的flycapture2圖像轉換爲openCV格式,以便我可以對其進行一些基本操作。然後我想將它反饋回Flycapture SDK,但我似乎無法弄清楚如何。從Flycapture轉換爲OpenCV的我做到以下幾點:OpenCV到FlyCapture2圖片

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

我爲Point Gray工作,我會盡力幫忙。請注意,儘管您可以通過我們的支持網站ptgrey.com/support/直接與我們聯繫,我們也可以爲您提供幫助。

看着你附加的代碼,看着openCV源代碼,當你製作cvImage時,你只是重新分配指向數據的指針,你並沒有做出實際的數據副本。因此,只要數據的大小保持不變(即每像素保持24位),您對openCV映像所做的任何更改都應該反映在flycapture(cf2Img)數據中,並且能夠妥善保存。

如果您可以解釋您嘗試移回捕捉圖像時遇到的問題,或者向我們發送您如何操作的源代碼,我們可以爲您提供更多幫助。總之,假設你沒有改變圖像的位深度,我希望在你提供的代碼之後,你對cvImage做的任何操作都應該反映在cf2Img中,而不需要轉換回去。

我希望有幫助,但請讓我知道,如果我可以幫助澄清任何事情,或者如果你可以提供一個失敗轉換回fc2的例子。

謝謝 Point Grey Support