用C++写一段OpenCV裁剪图片的代码,要求 抓的大小是2000 * 1536裁剪至1920* 1536
时间: 2024-04-10 09:27:41 浏览: 189
下面是使用C++和OpenCV库进行图片裁剪的示例代码,将图片从2000x1536裁剪为1920x1536:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 读取图片
cv::Mat image = cv::imread("input.jpg");
// 获取原始图片的宽度和高度
int width = image.cols;
int height = image.rows;
// 计算裁剪的起始位置
int start_x = (width - 1920) / 2;
int start_y = (height - 1536) / 2;
// 裁剪图片
cv::Rect roi(start_x, start_y, 1920, 1536);
cv::Mat cropped_image = image(roi);
// 保存裁剪后的图片
cv::imwrite("output.jpg", cropped_image);
return 0;
}
```
在这个示例中,我们使用OpenCV库的`imread`函数读取输入图片,并使用`cols`和`rows`属性获取图片的宽度和高度。然后,通过计算裁剪的起始位置,即原始宽度减去目标宽度除以2,原始高度减去目标高度除以2,确定裁剪的区域。接下来,我们使用`Rect`对象定义裁剪的矩形区域,并通过这个区域对原始图片进行裁剪操作。最后,使用`imwrite`函数保存裁剪后的图片到指定的输出路径。
请确保已经安装了OpenCV库,并将输入图片的路径和输出路径替换为实际的文件路径。
阅读全文