c++ opencv图像裁剪

在C++中使用OpenCV裁剪图像非常简单,你可以使用 cv::Rect 类定义一个矩形区域,然后使用 cv::Mat operator() 运算符来提取该区域的像素值。

下面是一个简单的例子,演示如何从原始图像中裁剪一个矩形区域:

#include <opencv2/opencv.hpp>
int main()
    // 读取图像
    cv::Mat image = cv::imread("test.jpg");
    // 定义裁剪区域
    cv::Rect roi(100, 100, 200, 200);
    // 提取裁剪区域的像素值
    cv::Mat cropped = image(roi);
    // 显示裁剪后的图像
    cv::imshow("cropped", cropped);
    cv::waitKey(0);
    return 0;

在上面的例子中,cv::Rect的构造函数接受四个参数,分别是矩形区域的左上角坐标和宽度、高度。cv::Matoperator()运算符也可以接受一个cv::Rect对象作为参数,表示提取该矩形区域的像素值。

值得注意的是,如果裁剪区域超出了图像的边界,程序可能会崩溃或者提取错误的像素值,因此在实际应用中需要进行边界检查或者使用合适的异常处理方法。

  •