2

画像を取り込み、その一部を拡大できるブロックを作成しようとしています。これを行うために、私はOpenCVを使用しています(これは初めてです)。

私の問題は、16 ビット署名 (cv_16sC1) を使用して関数を実行するたびに、エラー OpenCV エラーが発生することです: サポートされていない形式または形式の組み合わせ () 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));

これは、同じエラーが発生する多くの試行の 1 つです (フォーマットを CV_32f に変更してもエラーは発生しませんでした)...

4

1 に答える 1

4

getRectSubPix{CV_8U、CV_8U}、{CV_32F、CV_32F}、および{CV_8U、CV_32F}の{src、dst}タイプでのみ機能する ようです。

ソースコードを掘り下げて、それを理解します。API リファレンスには仕様がありません。

于 2012-11-14T06:10:54.313 に答える