根据图像轮廓细化分割掩码
Refine segmentation mask based on contours of image
我有一张图像,我将绿色边框作为分割蒙版的轮廓。我希望根据在原始图像上找到的轮廓来优化此轮廓,以获得类似于第二张图像中的蒙版 - 头发的边缘更加精细。
我已经尝试了分割掩码的膨胀和腐蚀组合,但它感觉不像是通用解决方案 - 因为它涉及手动调整内核大小。
有没有更好的方法?
没有通用的解决方案。始终需要参数调整以获得所需的输出。为了获得更精细的毛发边缘,您可以应用如下阈值:
import cv2 as cv
from matplotlib import pyplot as plt
im = cv2.imread("model.jpg",0)
plt.imshow(im)
thresh = cv2.adaptiveThreshold(im,255,cv2.ADAPTIVE_THRESH_MEAN_C,\
cv2.THRESH_BINARY_INV,31,3)
plt.imshow(thresh)
输入:
输出:
注意:颜色变化是由于'matplotlib'。
我有一张图像,我将绿色边框作为分割蒙版的轮廓。我希望根据在原始图像上找到的轮廓来优化此轮廓,以获得类似于第二张图像中的蒙版 - 头发的边缘更加精细。
我已经尝试了分割掩码的膨胀和腐蚀组合,但它感觉不像是通用解决方案 - 因为它涉及手动调整内核大小。
有没有更好的方法?
没有通用的解决方案。始终需要参数调整以获得所需的输出。为了获得更精细的毛发边缘,您可以应用如下阈值:
import cv2 as cv
from matplotlib import pyplot as plt
im = cv2.imread("model.jpg",0)
plt.imshow(im)
thresh = cv2.adaptiveThreshold(im,255,cv2.ADAPTIVE_THRESH_MEAN_C,\
cv2.THRESH_BINARY_INV,31,3)
plt.imshow(thresh)
输入:
输出:
注意:颜色变化是由于'matplotlib'。