【问题标题】:How to generate a Trimap image如何生成 Trimap 图像
【发布时间】:2021-02-05 23:04:52
【问题描述】:

我找到了这个狗和猫的图像数据集:

Oxford-IIIT 宠物数据集。

知道像素级前景-背景分割(trimap)图像是如何生成的吗?

我想将它用于我自己的数据集。

像素级前景-背景分割

具有三种颜色的图像(一种用于背景,一种用于前景,一种用于未分类区域)

【问题讨论】:

标签: image-processing


【解决方案1】:
注意:输入图像为二进制形式
def generate_trimap(mask_path,eroision_iter=6,dilate_iter=8):
    mask =  mask_path
    mask = cv2.imread(mask,0)
    mask[mask==1] = 255
    d_kernel = np.ones((3,3))
    erode  = cv2.erode(mask,d_kernel,iterations=eroision_iter)
    dilate = cv2.dilate(mask,d_kernel,iterations=dilate_iter)
    unknown1 = cv2.bitwise_xor(erode,mask)
    unknown2 = cv2.bitwise_xor(dilate,mask)
    unknowns = cv2.add(unknown1,unknown2)
    unknowns[unknowns==255]=127
    trimap = cv2.add(mask,unknowns)
    # cv2.imwrite("mask.png",mask)
    # cv2.imwrite("dilate.png",dilate)
    # cv2.imwrite("tri.png",trimap)
    labels = trimap.copy()
    labels[trimap==127]=1 #unknown
    labels[trimap==255]=2 #foreground
    #cv2.imwrite(mask_path,labels)
    return labels

【讨论】:

    猜你喜欢
    • 2017-06-06
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    相关资源
    最近更新 更多