我有一个DIY家庭影楼拍照。我想他们是纯白色背景(#FFFFFF)与最低的用户交互Python OpenCV纯白色背景
我实现了用简单的Python程序OpenCV的和Tkinter的UI为
1)获取与对象(ROI矩形)
我决定选择与UI的投资回报率,也许以后我会写代码来自动识别照片对象。
2)同cv2.grabCut功能我尝试从该矩形
cv2.grabCut(image, self.mask, rect, bgdmodel, fgdmodel, 5, cv2.GC_INIT_WITH_RECT)
3)切背景如果必要的I为grabcut创建定制掩模可以提供更精确的对象提取
cv2.grabCut(image, self.mask, rect, bgdmodel, fgdmodel, 5, cv2.GC_INIT_WITH_MASK)
4)这个步骤i可以创建掩模在我的对象位于后。我还通过30PX
mask = cv2.resize(mask, (crop_img.shape[1] + 30, crop_img.shape[0] + 30))
mask = mask[30 : crop_img.shape[0], 30 : crop_img.shape[1]]
调整掩模,该掩模具有多个宽度和高度
5)我使用这个掩模seamlessClone方法
src_bg = 255 * np.ones(self.src.shape, self.src.dtype)
width, height, channels = src_bg.shape
center = (int(height/2), int((width/2)))
output = cv2.seamlessClone(crop_img, src_bg, mask, center, cv2.MIXED_CLONE)
看起来不错,除了物体右侧的一些工件。这好像是我的面具不适合。这不是一个真正的问题。真正的问题是:seamlessClone给我的不是真正的白色背景。看看等级:
一些奇怪的梯度和背景是不是真的白色的右下角。我尝试了很多图像,并且经常有这样的事情。
我的问题是:什么是正确的方法来做我想要的?我的方法是否可以用于此任务以及如何在没有这种渐变的情况下制作真正的白色(#FFFFFF)背景。谢谢
拍照时可能会使用更多的灯。 – furas