回答編集履歴
2
装飾の修正
answer
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
*Alpha channelを合成するには、mask*255
|
17
17
|
→`mask2 = mask2*255`の部分です
|
18
|
-
*255なしで出力するとよく分かりますが、マスク画像は0か1かにしかなっておらず、これだとアルファチャンネルを混ぜてもほとんど見た目は変わりませんね。なので、int8に合わせて0か255にしないといけませんね。
|
18
|
+
`*255`なしで出力するとよく分かりますが、マスク画像は`0か1か`にしかなっておらず、これだとアルファチャンネルを混ぜてもほとんど見た目は変わりませんね。なので、`int8`に合わせて`0か255か`にしないといけませんね。
|
19
19
|
|
20
20
|
---
|
21
21
|
投稿そのままだとループしてしまうので、必要なところだけ抜き出しました。
|
1
補足追加
answer
CHANGED
@@ -1,8 +1,30 @@
|
|
1
|
+
まず結果はこれでよいですね。
|
2
|
+
|
3
|
+
|**woman.jpg**|**grabbed.jpg**|**alpha.png**|
|
4
|
+
|:--|:--:|--:|
|
5
|
+
||||
|
6
|
+
|
7
|
+
---
|
8
|
+
|
9
|
+
大事なところは、
|
10
|
+
*Alpha channel付き画像は、PNGで出力(JPEGでは使えません)
|
11
|
+
→`cv2.imwrite("alpha.png",img_alpha)`の部分です
|
12
|
+
|
13
|
+
*Alpha channelを付加する際には、[b,g,r]に分割して[a]を付加
|
14
|
+
→`img_alpha = cv2.merge(img_bgr+[mask2])`の部分です
|
15
|
+
|
16
|
+
*Alpha channelを合成するには、mask*255
|
17
|
+
→`mask2 = mask2*255`の部分です
|
18
|
+
*255なしで出力するとよく分かりますが、マスク画像は0か1かにしかなっておらず、これだとアルファチャンネルを混ぜてもほとんど見た目は変わりませんね。なので、int8に合わせて0か255にしないといけませんね。
|
19
|
+
|
20
|
+
---
|
21
|
+
投稿そのままだとループしてしまうので、必要なところだけ抜き出しました。
|
22
|
+
|
1
23
|
```Python
|
2
24
|
import numpy as np
|
3
25
|
import cv2
|
4
26
|
|
5
|
-
img = cv2.imread("woman.
|
27
|
+
img = cv2.imread("woman.jpg" )
|
6
28
|
mask = np.zeros(img.shape[:2], np.uint8)
|
7
29
|
|
8
30
|
bgdModel = np.zeros((1,65),np.float64)
|