У меня есть проблема преобразования (Pleora SDK) PvBuffer в буфер Opencv и обработка потока.PvBuffer (Pleora SDK) to -> буфер Opencv
это пример кода, я нашел в (Pleora SDK C++ коды образца)
while (!PvKbHit())
{
PvBuffer *lBuffer = NULL;
PvResult lOperationResult;
PvBufferWriter lBufferWriter;
// Retrieve next buffer
PvResult lResult = aStream->RetrieveBuffer(&lBuffer, &lOperationResult, 1000);
if (lResult.IsOK())
{
if (lOperationResult.IsOK())
{
PvPayloadType lType;
//
// We now have a valid buffer. This is where you would typically process the buffer.
// -----------------------------------------------------------------------------------------
lFrameRate->GetValue(lFrameRateVal);
lBandwidth->GetValue(lBandwidthVal);
// If the buffer contains an image, display width and height.
uint32_t lWidth = 0, lHeight = 0;
lType = lBuffer->GetPayloadType();
cout << fixed << setprecision(1);
cout << lDoodle[ lDoodleIndex ];
cout << " BlockID: " << uppercase << hex << setfill('0') << setw(16) << lBuffer->GetBlockID();
if (lType == PvPayloadTypeImage)
{
// Get image specific buffer interface.
PvImage *lImage = lBuffer->GetImage();
// Read width, height.
lWidth = lBuffer->GetImage()->GetWidth();
lHeight = lBuffer->GetImage()->GetHeight();
unsigned char * data = lBuffer->GetImage()->GetDataPointer();
Mat OpencvImg = Mat(Size(lWidth, lHeight), CV_8UC1, data);
threshold(OpencvImg, OpencvImg, 100, 255, 0);
если вы проверяете последние 3 строки, я пытаюсь преобразовать буфер в циновку, но без успеха. Я также хотел бы показать поток.
Заранее спасибо.
резюме :: Mat workImage; PvImage * lImage = lBuffer-> GetImage(); lImage-> Alloc (lWidth, lHeight, PvPixelRGB8); // Получить указатель данных изображения, чтобы мы могли передать его в контейнер CV :: MAT unsigned char * img = lImage-> GetDataPointer(); // Скопируйте/конвертируйте указатель изображения Pleora Vision в cv :: Контейнер Mat cv :: Mat lframe (lHeight, lWidth, CV_8UC3, img, cv :: Mat :: AUTO_STEP); // orig CV_8UC1 lframe.copyTo (workImage); – user7077193
Это сработало, извините за странное форматирование, у меня нет большого опыта переполнения стека – user7077193
А, я могу отредактировать свой оригинальный пост ... круто! – user7077193