Как создать Emgu :: CV :: Image с определенным типом? - PullRequest
0 голосов
/ 27 апреля 2018

В OpenCV у нас есть доступ к типам CV_XX, которые позволяют вам создать матрицу, например, с CV_32SC1. Как мне это сделать в EmguCV?

Причина запроса:

В настоящее время я использую EmguCV и получаю сообщение об ошибке, когда мне нужно создать определенный тип изображения, и я не могу найти эти значения.

Вот мой код:

Emgu::CV::Image<Emgu::CV::Structure::Gray, byte>^ mask = gcnew Emgu::CV::Image<Emgu::CV::Structure::Gray, byte>(gray->Size);
try { CvInvoke::cvDistTransform(255-gray, tmp, CvEnum::DIST_TYPE::CV_DIST_L1, 3, nullptr, mask); }

Что выдает ошибку:

OpenCV: выходной массив меток должен быть 32sC1

Так что я считаю, что мне нужно изменить тип байта на 32sC1, как мне это сделать?

Я использую EmguCV 2.0

1 Ответ

0 голосов
/ 27 апреля 2018

Со страницы Работа с изображениями , в частности с разделом EmguCV 2.0, он дает следующие пояснения по глубине изображения:

Глубина изображения Глубина изображения указывается с использованием второго универсального Параметр Глубина. Типы глубины, поддерживаемые в Emgu CV 1.4.0.0 включают в себя

  • Байт
  • SByte
  • Single (float)
  • Двухместный
  • UInt16
  • Int16
  • Int32 (int)

Я полагаю, это означает, что он вообще не использует типы CV_XXX и только выше.

Для моей проблемы я установил тип Int32, и он, похоже, перестал ошибаться.

...