Открыть резюме в 16-битном формате со знаком не работает... Обрезка и изменение размера изображения

Я пытаюсь сделать блок, который может взять изображение и увеличить его часть. Для этого я использую OpenCV (что я новичок).

Моя проблема заключается в том, что всякий раз, когда я запускаю функции, используя 16-битную подпись (cv_16sC1), я получаю ошибку OpenCV Error: неподдерживаемый формат или комбинация форматов () в cvGetRectSubPix, файл /media/virtex4/re/OpenCV-2.4.0/modules/imgproc/src/samplers.cpp, строка 573.

Во-первых, кто-нибудь знает, действительно ли эта функция работает с такой битовой глубиной? Есть ли способ узнать?

  cv::Mat image_1_in(video_frame->_width, video_frame->_height, CV_16SC1, video_frame->GetPointerToYLine(0));
  cv::Mat image_1_out(video_frame->_width, video_frame->_height, CV_16SC1, video_frame_out->GetPointerToYLine(0));

  cv::Mat temp_image;

  getRectSubPix(image_1_in, cv::Size(100, 200), cv::Point2f(200, 200), temp_image);
  resize(temp_image, image_1_out, Size(video_frame_out->_width, video_frame_out->_height));

Это одна из многих попыток, каждая из которых выдает ту же ошибку (пока я не изменил формат на CV_32f, который не дал ошибку)...

1 ответ

Решение

Похоже на то getRectSubPix работать только с типами {src,dst} {CV_8U, CV_8U}, {CV_32F, CV_32F} и {CV_8U, CV_32F}.

Я погружаюсь в исходный код и выясняю это. Там нет спецификации в справочнике по API.

Другие вопросы по тегам