かなり単純な概念ですが、私は640x480のマットと800x480の画面を持っています。黒の800x480画像の中央に表示されるので、縦横比は維持されますが、画面全体が使用されます。cv :: Matを別のものにコピーすると、アサーションに失敗しました0 <= _colRange.start && .. "
私はthisポストに続き、両方のソリューション(ダイレクトコピーへと関心領域)を試してみましたし、同じエラーを取得:
OpenCV Error: Assertion failed (0 <= _colRange.start && _colRange.start <= _colRange.end && _colRange.end <= m.cols) in Mat, file /home/pi/opencv-3.0.0/modules/core/src/matrix.cpp, line 464
terminate called after throwing an instance of 'cv::Exception'
what(): /home/pi/opencv-3.0.0/modules/core/src/matrix.cpp:464: error: (-215) 0 <= _colRange.start && _colRange.start <= _colRange.end && _colRange.end <= m.cols in function Mat
Aborted
に問題のあるコード:
cv::Mat displayimage = cv::Mat(800, 480, CV_16U, cv::Scalar(0));
modimage1.copyTo(displayimage.rowRange(1,480).colRange(81,720));
を私が最初にそれを実行しようとしました(0,480)と(80,720)の開始/終了範囲/行になりますが、エラーは0で始まらないように聞こえるので、もちろん私は1で終わったと思っていました。結果。しかし、実際には、誤差は列ではなく列であり、列が1だけずれても問題ではありません。だから私はこのイメージをどこにコピーしようとしているのか気に入らないのですか?
私見を使用することができ、サブ画像を簡単にCV ::のRect要素を使用してアクセスされています。 – Micka