我在使用 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,线程“主”CvException [org.opencv.core.CvException:......\src\opencv\modules\core\src\copy.cpp:348:错误:(-215)中的第 348 行异常checkScalar(value, type(), _value.kind(), _InputArray::MAT )] at org.opencv.core.Mat.n_setTo(Native Method) at org.opencv.core.Mat.setTo(Mat.java:2164 )*
我想做的很简单:一次拍摄一张图像,将其写入组合图像中,将列向右移动,依此类推。由于它们具有相同的大小,因此应该是可能的。有人能指出为什么这不起作用吗?