OpenCV2.4.13 中 选取roi区域,任意形状(矩形,不规则多边形,圆形,椭圆,手动指定形状)

本文介绍了如何使用OpenCV选取图像中的感兴趣区域(ROI),包括矩形、不规则形状、圆形和椭圆等不同类型的ROI,并提供了详细的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在利用OpenCV对图像进行处理时,通常会遇到一个情况,就是只需要对部分感兴趣区域进行处理。
因此,如何选取感兴趣区域(其实就是“抠图”)。
下面给出一个例子:

    Mat img = imread(IMG_PATH);
    Mat cat = imread(CAT_PATH);
    if (img.empty()|| cat.empty())
        cerr << "can not read image."<<endl;

    // 指定感兴趣区域,两种方法
    Mat ROI =  img(Rect(40,40,cat.cols,cat.rows));
    Mat ROI2(img,Rect(40,40,cat.cols,cat.rows));

    // 展示 roi 区域
    imshow("roi",ROI);

    cout<<endl
        <<"将猫放到感兴趣区域,两种方法"<<endl;
    //cat.copyTo(ROI);
    cat.copyTo(ROI,cat);
    imshow("lotus with cat",img);


    // 在图像中画出 矩形
    rectangle(img,Rect(240,240,cat.cols,cat.rows),Scalar(0,0,255));
    imshow("with rectangle box",img);

    //  另一种方法
    cout <<endl
        << "利用 Rect 保存方框,然后使用"<<endl;
    Rect r1 = Rect(100,0,200,200);
    rectangle(img,r1,Scalar(255,0,0));
    imshow("with rectangle box 2",img);

下面是程序最终的结果:

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值