gocv 这个库用法,求哥哥们指点

2021-08-19 23:25:05 +08:00
 WriteCloser

找了个 C 代码是这样写的,问题是这个库在 cv::compare的时候没有 这个 cv::GC_PR_FGD 我在库里面 cgo 调用时把它改为了 3 也是不行的。

有兄弟知道 gocv 怎么调用 grabCut 来抠图吗


cv::Mat image= cv::imread("../tower.jpg");
if (!image.data)
    {
    cout<<"不能打开图像!"<<endl;
    return 0; 
    }


cv::Rect rectangle(50,70,image.cols-150,image.rows-180);

cv::Mat result;
cv::Mat bgModel,fgModel; 
double tt = cv::getTickCount();
cv::grabCut(image,
    result,
    rectangle,
    bgModel,fgModel, 
    cv::GC_INIT_WITH_RECT); // 用矩形
tt = cv::getTickCount() - tt;
printf("算法执行执行时间:%g ms\n", tt/cv::getTickFrequency()*1000);

cv::compare(result,cv::GC_PR_FGD,result,cv::CMP_EQ);

cv::Mat foreground(image.size(),CV_8UC3,cv::Scalar(255,255,255));
image.copyTo(foreground,result); 
1463 次点击
所在节点    Go 编程语言
3 条回复
jorneyr
2021-08-20 09:07:45 +08:00
OpenCV 好像是 C++ 的呢
Juszoe
2021-08-20 11:01:07 +08:00
按照 opencv 文档 https://docs.opencv.org/3.4/d2/de8/group__core__array.html#ga303cfb72acf8cbb36d884650c09a3a97 compare 的第二个参数应该是 inputArray 呢
WriteCloser
2021-08-20 15:17:15 +08:00
@Juszoe 感谢,可能因为版本不一致。放弃 go 去实现,改用 Python 什么毛病都治好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/796896

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX