java OpenCV.多个图像并排



是否有任何如何将两个或多个图像并排组合的示例?在JAVA中

我试着改编c++代码,但没有成功。

Mat m = new Mat(imageA.cols(), imageA.rows() + imageB.rows(), imageA.type());
m.adjustROI(0, 0, imageA.cols(), imageA.rows());
imageA.copyTo(m);
m.adjustROI(0, imageA.rows(), imageB.cols(), imageB.rows());
imageB.copyTo(m);

这将总是给出m作为imageA。方法A.copyTo(B)B == A结果一致

c++中几乎每个例子都包含cvCopy(arg1, arg2);,看起来像java中的A.copyTo(B)

但是当我使用A. copyto (B)时,我总是得到A的宽度,高度和内容的图像,即使B更大

你可以使用hconcat/vconcat函数:

Mat dst = new Mat();
List<Mat> src = Arrays.asList(mat1, mat2);
Core.hconcat(src, dst);
//Core.vconcat(src, dst);
private Mat addTo(Mat matA, Mat matB) {
    Mat m = new Mat(matA.rows(), matA.cols() +  matB.cols(), matA.type());
    int aCols = matA.cols();
    int aRows = matA.rows();
    m.rowRange(0, aRows-1).colRange(0, aCols-1) = matA;
    m.rowRange(0, aRows-1).colRange(aCols, (aCols*2)-1) = matB;
    return m;
}

我没有试着运行它,但我相信它会工作。我假设matA和matB将具有相同大小的和相同类型的。即使它不工作,也一定有一些小语法错误或等。你不应该通过使用4 for循环来放置像素值!

相关内容

  • 没有找到相关文章

最新更新