我有一个图像,我希望它被拆分成偶数矩形到目前为止我有这个代码,但我一直在崩溃,我不知道为什么。
int cells = 10;
int rows_to_process = image.rows / cells;
int cols_to_process = image.cols;
cv::Mat img;
std::vector<cv::Mat> imageSections(cells);
int x = 0;
int y = 0;
cout << imageSections.size() << endl;
for(int i=0; i<image.rows/rows_to_process; i++)
{
cout << "i is: " << i << " x is: " << x << endl;
imageSections[i] = image(cv::Rect(x, y, cols_to_process, rows_to_process));
x += rows_to_process;
}
我测试了输出x
,我得到的维度从0到图像大小的增量相等。我希望增加x到我想要开始的下一个点可以工作,但我经常崩溃。有没有人知道为什么?
我的错误在终端中显示为
OpenCV Error: Assertion failed (0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows) in Mat,
答案 0 :(得分:0)
怎么样(没试过):
int cell_Height = image.rows / 10;
int cell_width = image.cols;
std::vector<cv::Mat> imageSections(rows_to_process);
int x = 0;
int y = 0;
for(y=0; y+cell_Height<image.rows; y+=cell_Height)
{
cout << y << endl;
imageSections[i] = image(cv::Rect(x, y, cell_Width, cell_Height));
}