2014-09-02 7 views
1

나는 bumblebee2가 있고 들어오는 이미지를 캡처하기 위해 flycapture SDK를 사용하고 있습니다. 그런 다음 왼쪽 flycapture2 이미지를 openCV 형식으로 변환하여 기본 조작을 수행 할 수 있습니다. 그렇다면 Flycapture SDK에 다시 넣고 싶습니다.하지만 어떻게 할 수 없는지 파악합니다. 다음 내가 OpenCV의 할 Flycapture 변환하려면OpenCV to FlyCapture2 Image

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) 데이터에 반영되어야하며 제대로 저장하려면.

flycapture 이미지로 돌아가려고하는 문제를 설명하거나 어떻게하는지에 대한 소스 코드를 보내 주시면 더 잘 도와 드리겠습니다.

요약하면 이미지의 비트 심도를 변경하지 않는다고 가정하면 제공된 코드가 cf2Img에 반영된 후에 cvImage에 수행하는 모든 조작은 변환하지 않아도됩니다.

도움이 되었으면 좋겠지 만 무엇이든지 명확히하는 데 도움이되는지 또는 fc2로 다시 변환하지 못하는 예를 제공 할 수 있는지 알려 주시기 바랍니다.

고맙습니다. 포인트 회색 지원