• grabcut 分割 Rect


    #include "opencv2/opencv.hpp"
    using namespace cv;
    
    void main()
    {
        Mat src = imread("E:\智能检测与图像处理\3.jpg");
        Rect rect(50, 50, 500, 800);//左上坐标(X,Y)和长宽
        Mat result, bg, fg;
    
        grabCut(src, result, rect, bg, fg, 1, GC_INIT_WITH_RECT);
        imshow("grab", result);
        /*threshold(result, result, 2, 255, CV_THRESH_BINARY);
        imshow("threshold", result);*/
    
        compare(result, GC_PR_FGD, result, CMP_EQ);//result和GC_PR_FGD对应像素相等时,目标图像该像素值置为255
        imshow("result", result);
        Mat foreground(src.size(), CV_8UC3, Scalar(255, 255, 255));
        src.copyTo(foreground, result);//copyTo有两种形式,此形式表示result为mask
        imshow("foreground", foreground);
        waitKey(0);
    }
    void cv::grabCut( InputArray _img, InputOutputArray _mask, Rect rect,
    InputOutputArray _bgdModel, InputOutputArray _fgdModel,
    int iterCount, int mode )

    img——待分割的源图像,必须是8位3通道(CV_8UC3)图像,在处理的过程中不会被修改;  mask——掩码图像,如果使用掩码进行初始化,那么mask保存初始化掩码信息;在执行分割的时候,也可以将用户交互所设定的前景与背景保存到mask中,然后再传入grabCut函数;在处理结束之后,mask中会保存结果。mask只能取以下四种值:

     GCD_BGD(=0),背景;

     GCD_FGD(=1),前景;

     GCD_PR_BGD(=2),可能的背景;

     GCD_PR_FGD(=3),可能的前景。

    如果没有手工标记GCD_BGD或者GCD_FGD,那么结果只会有GCD_PR_BGD或GCD_PR_FGD;

     rect——用于限定需要进行分割的图像范围,只有该矩形窗口内的图像部分才被处理;

    bgdModel——背景模型,如果为null,函数内部会自动创建一个bgdModel;bgdModel必须是单通道浮点型(CV_32FC1)图像,且行数只能为1,列数只能为13x5;

     fgdModel——前景模型,如果为null,函数内部会自动创建一个fgdModel;fgdModel必须是单通道浮点型(CV_32FC1)图像,且行数只能为1,列数只能为13x5;

     iterCount——迭代次数,必须大于0;

    mode——用于指示grabCut函数进行什么操作,可选的值有:

    GC_INIT_WITH_RECT(=0),用矩形窗初始化GrabCut;

    GC_INIT_WITH_MASK(=1),用掩码图像初始化GrabCut;

    GC_EVAL(=2),执行分割。

  • 相关阅读:
    Linux基础命令-pwd
    Linux基础命令-sosreport
    c#设置xml内容不换行;添加属性为xsi:nil="true"的空节点
    sql ROW_NUMBER() 排序函数
    服务器×××上的MSDTC不可用解决办法
    MSDTC Service的访问权限
    setTimeout
    ASP.NET中Request.Form中文乱码的解决方
    js实现小数点后保留N位并可以四舍五入——js对float数据的处理
    Meta标签中的viewport属性含义及设置
  • 原文地址:https://www.cnblogs.com/hsy1941/p/9778612.html
Copyright © 2020-2023  润新知