OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 1909|回复: 1

grabCut函数这段代码运行报错啊,哪位大神能讲解下?本人...

[复制链接]
发表于 2016-12-13 11:48:02 | 显示全部楼层 |阅读模式
#include "stdafx.h"
#include "opencv2\opencv.hpp"
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
        Mat image = imread("1.jpg");
        Rect rectangle(100, 67, 166, 524);
        Mat result;
        Mat bgModel, fgModel;
        grabCut(image, result, rectangle, bgModel, fgModel, 5, GC_INIT_WITH_RECT);
        compare(result, GC_PR_FGD, result, CMP_EQ);
        Mat foreground(image.size(), CV_8UC3, Scalar(110, 110, 110));
        image.copyTo(foreground, result);
        result = result & 1;
        //Mat foreground(image.size(), CV_8UC3, Scalar(255, 255, 255));
        //image.copyTo(foreground, result);
        imshow("1", foreground);
        imwrite("zzz.jpg",foreground);
        waitKey(0);
        return 0;
}
回复

使用道具 举报

发表于 2019-2-27 14:39:06 | 显示全部楼层
int main() {
        Mat frame1;
        frame1 = imread("L.jpg");
        resize(frame1, frame1, Size(800, 600), 0, 0, INTER_AREA);
        imshow("原图像", frame1);

        Rect rect(80, 20, 600, 500);
        Mat mask, bgdModel, fgdModel;
        mask.create(frame1.size(), CV_8UC1);

        mask.setTo(Scalar::all(GC_BGD));
        rect.x = max(0, rect.x);
        rect.y = max(0, rect.y);
        rect.width = min(rect.width, frame1.cols - rect.x);
        rect.height = min(rect.height, frame1.rows - rect.y);
        (mask(rect)).setTo(Scalar(GC_PR_FGD));
        grabCut(frame1, mask, rect, bgdModel, fgdModel, 1, GC_INIT_WITH_MASK);
        compare(mask, GC_PR_FGD, mask, CMP_EQ);
        mask = mask & 1;
        Mat foreground(mask.size(), CV_8UC3, Scalar(0, 0, 0));
        frame1.copyTo(foreground, mask);
        imshow("图像分割", foreground);
        waitKey(0);
        return 0;
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-4-19 11:36 , Processed in 0.008084 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表