添付のようなアパレルの画像から輪郭を抽出、切り抜きを実現したいのですが、
経験が少ないため、どのようにアプローチすべきか悩んでします。
下記サイトを参考にプロセスを考えました。
https://qiita.com/icoxfog417/items/53e61496ad980c41a08e
前提ですが背景は単色(白)、服の色や柄は汎用的に対応したいと考えています。
(輪郭には関係ないかもしれませんが)
①グレースケール
②影をマスク
③Canny
④findContours
⑤輪郭の近似
⑥切り抜き
環境は、opencv、pythonです。
#ソース
img = cv2.imread('XXXXXXXX')
①グレースケール
img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
②影をマスク ここがうまくいきません。そもそもマスクなのかという疑問もあります。
③Canny
edges = cv2.Canny(img_gray, 80, 100)
im2, contours, hierarchy = cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
④findContours
for c in contours:
cv2.drawContours(img, c, -1, (0, 0, 255), 1)
⑤輪郭の近似 作成中
cv2.imshow('img',resize(img))
結果
中途半端な状態ではありますが、結果としてダメそうな気がしています。
どなたか実装ベースでご教授いただけないでしょうか。
よろしくお願い致します。