gpt4 book ai didi

java - 无法在 Android 上使用 OpenCV 在 for 循环中裁剪图像

转载 作者:行者123 更新时间:2023-12-02 04:05:47 27 4
gpt4 key购买 nike

我正在尝试在 for 循环内裁剪 Android 上的图像,以计算该区域中所有像素的总和:

  int patch = 25;


for (int count1=0; count1<outputMat.cols(); count1 = count1+patch )
{
for (int count2=0; count2<outputMat.rows(); count2 = count2+patch )

{

int widthROI = count1+patch-1;
int heightROI = count2+patch-1;
Mat ROI = outputMat.submat(count1, count2, widthROI, heightROI);

}
}

我收到此错误:

32007-32007/org.opencv.samples.tutorial1 E/cv::error()﹕ OpenCV Error: Assertion failed (0 <= _rowRange.start && _rowRange.start <= _rowRange.end && _rowRange.end <= m.rows) in cv::Mat::Mat(const cv::Mat&, const cv::Range&, const cv::Range&), file /hdd2/buildbot/slaves/slave_ardbeg1/50-SDK/opencv/modules/core/src/matrix.cpp

有人可以帮忙吗?

最佳答案

Mat.submat参数的顺序应该是:

submat(row_start,row_end,column_start,column_end)

所以参数的顺序是错误的。

您正在使用.cols()计算宽度,并使用 .rows()来计算高度。更改为count1 < outputMat.rowscount2 < outputMat.cols然后使用

.submat(count1,widthROI,count2,heightROI) 

关于java - 无法在 Android 上使用 OpenCV 在 for 循环中裁剪图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34289959/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com