opencv 将mat分为m*n块,并可视化
时间: 2023-12-20 16:07:07 浏览: 32
下面是使用 OpenCV 将一个 Mat 分成 m * n 块,并可视化的示例代码:
```c++
cv::Mat largeMat = cv::imread("large_image.jpg");
int m = 3; // number of rows
int n = 4; // number of columns
int blockWidth = largeMat.cols / n;
int blockHeight = largeMat.rows / m;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
// calculate the position and size of the block
int x = j * blockWidth;
int y = i * blockHeight;
cv::Rect blockRect(x, y, blockWidth, blockHeight);
// extract the block from the large Mat
cv::Mat blockMat = largeMat(blockRect);
// create a window for each block
std::string windowName = "Block (" + std::to_string(i) + "," + std::to_string(j) + ")";
cv::namedWindow(windowName, cv::WINDOW_NORMAL);
// show the block in the window
cv::imshow(windowName, blockMat);
cv::waitKey(0);
// close the window
cv::destroyWindow(windowName);
}
}
```
在上面的示例代码中,我们首先加载一个大的图像,然后将其分成 3 * 4 块,每个块的大小由 blockWidth 和 blockHeight 计算得出。然后,我们使用两个嵌套的循环来遍历所有的块,计算每个块的位置和大小,提取每个块并创建一个窗口来显示该块。接着,我们使用 cv::imshow 函数将块显示在窗口中,并等待用户按下任意键。最后,我们使用 cv::destroyWindow 函数关闭窗口。
需要注意的是,如果图像的大小不是 m * n 的整数倍,最后一个块的大小可能会与其他块不同。如果你想要保持所有块的大小相同,你可以将图像的大小调整为 m * n 的整数倍。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)