setTo() メソッドの使用に問題があります。私のコードは次のとおりです。
ArrayList<Mat> someImagesOfSameSize = new ArrayList<Mat>;
someImagesOfSameSize.add(img1);
someImagesOfSameSize.add(img3);
someImagesOfSameSize.add(img3);
Mat combinedImagesOfSameSize = new Mat(new Range(0,30), new Range(0,100*someImagesOfSameSize.size()),3);
Mat tempImage = null;
for(int i = 0; someImagesOfSameSize.size();i++){
tempImage = someImagesOfSameSize.get(i);
combinedImagesOfSameSize.submat(new Range(0,30), new Range(i*100,(i+1)*100)).setTo(tempImage)
}
次の OpenCV エラーが表示されます。
* OpenCV エラー: アサーションが失敗しました (checkScalar(value, type(), _value.kind(), _InputArray::MAT ))
不明な関数、ファイル ......\src\opencv\modules\core\src\copy .cpp、348行目スレッド「メイン」での例外 CvException [org.opencv.core.CvException: ......\src\opencv\modules\core\src\copy.cpp:348: エラー: (-215) checkScalar(value, type(), _value.kind(), _InputArray::MAT )] org.opencv.core.Mat.n_setTo(ネイティブ メソッド) at org.opencv.core.Mat.setTo(Mat.java:2164) )*
私がやりたいことは簡単です:一度に1つの画像を取り、それを結合された画像に書き込み、列を右にシフトします。それらはすべて同じサイズであるため、可能である必要があります。誰かがなぜこれがうまくいかないのか指摘できますか?