How to Generated Trimap for an input image ?
I want to get an trimap of the input image, so that I can get foreground image using this two things (input image & corresponding trimap). Actually I want to build an PoC (Proof of Concept) which takes any image and generates its foreground image.
Maybe you could refer to this issue.
@minkvirparia Did you solve the problem? I have the same question - how's possible to generate trimap programmatically and not manually?
If you mean generate from alpha mattes for training or generate from a segmentation map like MatAny, it is possible. However, if you mean automatic object detection, I'm afraid not.
For this purpose, you may refer to the keywords 'human matting'. Here is some great work: RVM(human video matting), SIM(semantic image matting), MODNet(realtime human matting).
If you mean generate from alpha mattes for training or generate from a segmentation map like MatAny, it is possible. However, if you mean automatic object detection, I'm afraid not.
For this purpose, you may refer to the keywords 'human matting'. Here is some great work: RVM(human video matting), SIM(semantic image matting), MODNet(realtime human matting).
Yes, I mean generate from alpha mattes/maps. I have tools that generate this stuff, but VitMatte requires trimap, so how can I generate trimap from this kind of map?
@LukaGiorgadze In ViTMatte, we generate in this way: https://github.com/hustvl/ViTMatte/blob/c2605975063bacd49852b9709cc1e0ebe58e4972/data/dim_dataset.py#L509
@LukaGiorgadze In ViTMatte, we generate in this way:
https://github.com/hustvl/ViTMatte/blob/c2605975063bacd49852b9709cc1e0ebe58e4972/data/dim_dataset.py#L509
Thank you @JingfengYao! This is helpful!
I love your work, it's absolutely amazing!
btw I suggest you add a sponsor button so people can sponsor with some bucks 💸
@LukaGiorgadze Thanks 😄
import cv2
def trimap_process(mask,trimap_threshold=20): #cv2
edges = cv2.Canny(mask, 100, 200)
kernel = np.ones((trimap_threshold, trimap_threshold), np.uint8)
expanded_edges = cv2.dilate(edges, kernel, iterations=1)
expanded_mask = mask.copy()
expanded_mask[expanded_edges > 0] = 128 # Assign gray color to the expanded region
# cv2.imwrite("expanded_mask.png",expanded_mask)
return expanded_mask # trimap_mask