【发布时间】:2021-03-04 13:34:35
【问题描述】:
我遇到了与此处描述的问题类似(或相同?)的问题:Reusing models from grabcut in OpenCV。但是,这个问题似乎根据https://github.com/opencv/opencv/issues/9191 得到了纠正。这是我的代码:
import numpy as np
import cv2 as cv
img = cv.imread("image.jpg")
rect = (0, 773, 517, 1183)
bgdModel = np.zeros((1, 65), np.float64)
fgdModel = np.zeros((1, 65), np.float64)
mask, bgdModel, fgdModel = cv.grabCut(img, None, rect, bgdModel, fgdModel, 5, cv.GC_INIT_WITH_RECT)
mask = np.zeros(img.shape[:2], np.uint8)
mask, bgdModel, fgdModel = cv.grabCut(img, mask, None, bgdModel, fgdModel, 5, cv.GC_EVAL)
在第一次调用 grabCut 之后,我在 mask 中得到了正确的结果(这确实很棒!)。但是,在第二次调用 grabCut 之后,掩码仅包含零值。我期望得到与以前完全相同的结果。我做错了什么或误解了如何使用 cv.GC_EVAL 模式?我正在尝试重用模型,就像 ipa Reusing models from grabcut in OpenCV 的初始帖子一样。
使用 cv.GC_EVAL_FREEZE_MODEL 时,我得到了相同的结果。我正在使用 opencv-python 4.4.0.42 和 python 3.6。
非常感谢您的回答!
【问题讨论】:
标签: python opencv opencv-python