- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
他,如何用掩码初始化第一个 Grabcut?就我而言,每次出现此错误时:(-215) !bgdSamples.empty() && !fgdSamples.empty() 在函数 initGMMs 中。是否可以使用掩码运行第一个 Grabcut 迭代?当我将第一个 Grabcut Iteration 与 Rect 一起使用时,它已经可以工作了。这是我的带有掩码的初始化代码(第二次迭代):
mask = Mat::ones(image_.size(), CV_8UC1) * GC_PR_BGD; //GC_PR_BGD
// GrabCut segmentation
grabCut(GrabCut::image, // input image
GrabCut::mask, // segmentation result
Rect(),// rectangle containing foreground
GrabCut::bgModel,GrabCut::fgModel, // models
iteration, // number of iterations
GC_INIT_WITH_MASK ); // use mask
仅供引用当模式设置为 GC_INIT_WITH_RECT 时,掩码由函数初始化。面具有 4 个“层”:
GC_BGD defines an obvious background pixels.
GC_FGD defines an obvious foreground (object) pixel.
GC_PR_BGD defines a possible background pixel.
GC_PR_FGD defines a possible foreground pixel.
谢谢
最佳答案
它并不完美,但结果很干净,图像边缘没有矩形。
使用 GC_PR_FGD/BGD 作为颜色在图像周围绘制一个更大的矩形
int xyCord = 1;
int size = 2*xyCord;
rectangle(GrabCut::mask, Point(xyCord,xyCord),Point(GrabCut::image.cols-size,GrabCut::image.rows-size),Scalar(GC_PR_FGD),30);
rectangle(GrabCut::mask, Point(xyCord,xyCord), Point(GrabCut::image.cols-size,GrabCut::image.rows-size),Scalar(GC_PR_BGD),30);
第二个带 mask 的 Grabcut init
关于c++ - openCV grabcut GC_INIT_WITH_MASK 第一次迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26041887/
我正在尝试从 reference code 在 Android 中实现 Grabcut .但是当我运行代码时,会生成以下错误。 错误: OpenCV Error: Assertion failed (
这个问题我想了很久,但一直没有真正进行过详细的分析。是否使用 GrabCut 进行前景分割[1] 算法取决于输入图像的大小?直觉上,在我看来,由于grabcut 是基于颜色模型的,颜色分布不应随着图像
我正在使用调用函数 grabcut() 的 opencv 的 grabcut.cpp 和 graphcut.cpp 代码。我必须找到一种方法来保存从某个图像计算出的背景和前景模型并将其应用于另一个图像
我想知道下面代码中实际发生了什么。 cv::Rect rectangle(x,y,width,height); cv::Mat result; cv::Mat bgModel,fgMo
当我在图像上运行 Grabcut 时,我将抓取的边界框设置为图像本身的边缘。 但是,由于图像的底部是前景的一部分而不是背景,因此它会切掉下半部分。 有没有什么办法可以防止这种情况发生,比如只在顶部、左
我正在尝试使用 C++ 在 OpenCV 中实现抓取算法我偶然发现 this site并找到了一种非常简单的方法。不幸的是,代码似乎对我不起作用 #include "opencv2/opencv.hp
在opencv示例自带的标准grabcut程序中,我添加了几行代码将结果保存到文件中。但是,文件中没有任何内容。只是黑色纯色。这是我输入的代码 -- 在主函数中 case 's': gcapp
我正在浏览 GrabCut算法,我想将吉布斯能量的数据项更新为以下内容: 其中,和 . p^f 和 p^b 分别是具有 4 个和 8 个分量的高斯混合模型 (GMM)。我正在查看 GrabCut 的代
我正在尝试从背景趋于白色的几张图像中删除相对琐碎的背景。但是,生成的蒙版会与前景重叠,即使它不包含太多白色。例如,给定以下输入: GrabCut 给出: 这是我的代码: img = cv2.imrea
我使用 Grabcut 算法实现了背景减除。但是我在源图像的裁剪图像中有一些不需要的空白。如何去除裁剪图像的空白。? 步骤: 从相机读取视频并读取图像。我的输入图像: 应用 Grabcut 算法。 c
我正在使用 grabcut 从图像中删除白色背景。边缘的部分背景仍然存在。你能帮我把阴影部分也去掉吗? 输入图片 输出图片 尝试了抓取、轮廓、正常阈值处理,但阴影仍然存在 img_ray = cv.c
我有一张图片(.jpg 图片),我想从原始图片中提取背景。我用谷歌搜索了很多,但只找到了提取前景图像的教程。 我从另一个 stackoverflow question 获取了代码.该代码对我来说工作正
有谁知道 GrabCut 是否有 GPU 版本?我似乎在 opencv_contrib 中找不到 GrabCut 模块. GrabCut 只能在 CPU 上运行吗? 最佳答案 我认为 GPU 版本已从
我刚刚实现了 GrapCV 算法(OpenCV、C++、Visual Studio 12): grabCut( *image, mask, rect, bgdModel, fgdModel, 1, G
他,如何用掩码初始化第一个 Grabcut?就我而言,每次出现此错误时:(-215) !bgdSamples.empty() && !fgdSamples.empty() 在函数 initGMMs 中
我正在 OpenCV 中测试“grabcut.cpp”,但在编译时我收到以下错误消息: OpenCV Error: Assertion failed std::numeric_limits::eps
我想使用在 OpenCV 上实现的 GrabCut 算法。 如documentation所示这是函数签名: void grabCut( InputArray img, InputOut
我正在使用 JavaCV 版本 3.4.2 以及 Android SDK 27。我尝试首先使用带有掩码的grabcut。 这是我的输入图像(左)和蒙版(右): 请注意,我在这里展示的是带有衬衣的面具。
我尝试在以下论文中实现想法:BiCoS: A Bi-level Co-Segmentation Method for Image Classification但我对以下要求感到困惑:这里的 GrabC
我关注了this opencv tutorial并使用我自己的图像和掩码使用 opencv grabcut 算法改进分割,但生成的掩码与初始掩码相同。 代码: import cv2 init_mask
我是一名优秀的程序员,十分优秀!