gpt4 book ai didi

c++ - 将 PByte 转换为 Mat OpenCV

转载 作者:行者123 更新时间:2023-11-28 02:20:21 25 4
gpt4 key购买 nike

我正在使用带有 opencv 的 PS3 相机,它使用 PByte 数据类型。将 PByte 作为帧结果。在 SDK 示例中,他们使用 IplImage。我想使用 Mat 而不是 IplImage。但我无法将 PByte 转换为 Mat。我如何转换 PByte垫? SDK示例

     IplImage *pCapImage;
PBYTE pCapBuffer = NULL;
cvGetImageRawData(pCapImage, &pCapBuffer);
while(_running)
{
cvGetImageRawData(pCapImage, &pCapBuffer);
CLEyeCameraGetFrame(_cam, pCapBuffer, (i==0)?2000:0);
}
//Function from SDK

IMPORT(bool) CLEyeCameraGetFrame(CLEyeCameraInstance cam, PBYTE pData, int waitTimeout = 2000);

//MyCode//我使用2个摄像头。

    cv::Mat pCapImage[2];
PBYTE pCapBuffer = NULL;
while(_running){

for (int i = 0; i < 2; i++)
{
//trying convert
pCapImage[i] = cv::Mat (cvSize(w, h), 4, &pCapBuffer,IPL_DEPTH_8U).clone();

CLEyeCameraGetFrame(_cam[i], pCapBuffer);
}

Mat pCapImageMatL = pCapImage[0];
Mat pCapImageMatR = pCapImage[1];
imshow(_windowNameL, pCapImageMatL);
imshow(_windowNameR, pCapImageMatR);
}

最佳答案

如果您使用的是 OpenCV 3,IPlImage 已被弃用。所以@herohuyongtao 的回答是行不通的。

在这种情况下,解决方法是

cv::Mat frame;
frame = cv::cvarrToMat(pCapImage);

关于c++ - 将 PByte 转换为 Mat OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32771925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com