私は写真を撮るDIYのホーム写真スタジオを持っています。私は私が簡単なPythonプログラムを実装 Python OpenCV純粋な白の背景
私は(カメラからの任意の処理、ちょうど生JPG)を持っている。これは、元の画像である彼らは、最小のユーザインタラクション
で純粋な白色の背景(#FFFFFF)になりたいです
1 UI
のためのOpenCVとTkinterは)たぶん後、私は自動的に写真上のオブジェクトを認識するためのコードを記述します、私はUIでROIを選択することを決定)オブジェクト(ROIを持つ矩形を取得します。 cv2.grabCut機能付
2)私はgrabcutのカスタムマスクを作成する必要があれば、この矩形
cv2.grabCut(image, self.mask, rect, bgdmodel, fgdmodel, 5, cv2.GC_INIT_WITH_RECT)
3)から背景をカットしようとしていますより正確なオブジェクト抽出を提供できる。
cv2.grabCut(image, self.mask, rect, bgdmodel, fgdmodel, 5, cv2.GC_INIT_WITH_MASK)
4)このステップの後、私は私のオブジェクトが配置されているマスクを作成することができます。また、私は
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方法のため、このマスクを使用する)ので、このマスクは、より幅と高さ
5を持っている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]]
オブジェクトの右側にいくつかのアーティファクトを除いてよく見えます。私のマスクは良くフィットしていないようです。これは本当の問題ではありません。本当の問題は:seamlessCloneは私に本当に白い背景を与えません。レベルを見てみましょう:
いくつかの奇妙なグラデーションや背景本当に右下隅に白いではありません。私は多くの画像で試してみることが多く、そのようなことがしばしばあります。
私の質問は:私は何をしたいのですか?私のアプローチはこの作業に使用でき、そのような勾配なしで実際に白(#FFFFFF)の背景を作る方法ですか?ありがとう
多分あなたは写真を撮るときにもっと多くのランプを使います。 – furas