opencv c++实现将小图放在一张纯黑大图的中间
时间: 2023-11-07 17:10:51 浏览: 36
可以使用OpenCV的函数来实现将小图放在一张纯黑大图的中间。以下是实现的步骤:
1. 加载小图和纯黑大图:
```c++
cv::Mat small_img = cv::imread("small_image.jpg");
cv::Mat big_img = cv::Mat::zeros(cv::Size(800, 600), CV_8UC3);
```
2. 计算小图在大图中的位置:
```c++
int x = (big_img.cols - small_img.cols) / 2;
int y = (big_img.rows - small_img.rows) / 2;
```
3. 在大图中绘制小图:
```c++
small_img.copyTo(big_img(cv::Rect(x, y, small_img.cols, small_img.rows)));
```
完整代码如下:
```c++
#include <opencv2/opencv.hpp>
int main()
{
cv::Mat small_img = cv::imread("small_image.jpg");
cv::Mat big_img = cv::Mat::zeros(cv::Size(800, 600), CV_8UC3);
int x = (big_img.cols - small_img.cols) / 2;
int y = (big_img.rows - small_img.rows) / 2;
small_img.copyTo(big_img(cv::Rect(x, y, small_img.cols, small_img.rows)));
cv::imshow("Big Image", big_img);
cv::waitKey(0);
return 0;
}
```
其中,small_image.jpg是要放在大图中间的小图的文件名,800和600是大图的宽度和高度。运行程序后,会显示生成的大图。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.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)