c++ opencv,读取图片进行指定区域裁剪
时间: 2023-06-03 07:04:54 浏览: 912
很高兴为您解答问题。对于读取图片进行指定区域裁剪,您可以使用OpenCV中的ROI(Region of Interest)实现。具体操作如下:
1. 用 OpenCV 的 imread() 函数读取要处理的图片。
2. 定义矩形区域,即指定要裁剪的区域。
Rect roi(x, y, width, height);
其中,x和y 是矩形左上角的坐标,width和height分别是矩形的宽和高。
3. 使用矩形区域,即roi参数,从原图中裁剪出指定的区域。
Mat img_roi = img(roi);
其中,img是要处理的图片,img_roi是裁剪出的区域。
4. 进行后续的图像处理。
希望以上内容能够帮助您解决问题。
相关问题
opencv裁剪图片c++
要使用OpenCV裁剪图片,你可以使用以下代码示例中的任一方法:
1.
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main() {
// 读取图片
Mat img = imread("test.jpg");
// 裁剪图片
Mat cropped_image = img(Range(400,1200), Range(350,700));
// 显示原始图片和裁剪后的图片
imshow("原始图片", img);
imshow("裁剪后的图片", cropped_image);
// 保存裁剪后的图片
imwrite("裁剪后的图片.jpg", cropped_image);
// 等待按键退出
waitKey(0);
// 销毁窗口
destroyAllWindows();
return 0;
}
```
2.
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main() {
// 读取图片
cv::Mat img;
cv::Rect m_select;
img = imread("F://Visual Studio 2015//ROItest01//ROItest01//01.jpg");
// 显示原始图片
imshow("原图", img);
// 裁剪图片
m_select = Rect(0,0,111,217);
Mat ROI = img(m_select);
// 显示裁剪后的图片
#### 引用[.reference_title]
- *1* [opencv图像裁剪(C++)](https://blog.csdn.net/weixin_44487231/article/details/112849701)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [OpenCV入门(C++/Python)-使用OpenCV裁剪图像(四)](https://blog.csdn.net/weixin_42010722/article/details/128183509)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
opencv C++ 裁剪图片
以下是使用OpenCV C++裁剪图片的示例代码:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读取图片
Mat img = imread("汽车.png");
// 切割图片
Rect rect(50, 200, 400, 300);
Mat croppedImg = img(rect).clone();
// 显示切割后的图片
imshow("裁剪后的图片", croppedImg);
waitKey(0);
// 保存切割后的图片
imwrite("裁剪后的图片.jpg", croppedImg);
// 销毁窗口
destroyAllWindows();
return 0;
}
```
这段代码首先使用`imread`函数读取了名为"汽车.png"的图片,然后使用`Rect`类定义了一个矩形区域,该矩形区域的左上角坐标为(50, 200),宽度为400,高度为300。接下来,使用`img(rect)`将原图像中的指定区域提取出来,并使用`clone`函数创建了一个副本。最后,使用`imshow`函数显示切割后的图片,使用`imwrite`函数保存切割后的图片,使用`destroyAllWindows`函数销毁窗口。
阅读全文