回答編集履歴

2

装飾の修正

2017/10/21 02:13

投稿

退会済みユーザー
test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  →`mask2 = mask2*255`の部分です
34
34
 
35
- *255なしで出力するとよく分かりますが、マスク画像は0か1かにしかなっておらず、これだとアルファチャンネルを混ぜてもほとんど見た目は変わりませんね。なので、int8に合わせて0か255にしないといけませんね。
35
+ `*255`なしで出力するとよく分かりますが、マスク画像は`0か1か`にしかなっておらず、これだとアルファチャンネルを混ぜてもほとんど見た目は変わりませんね。なので、`int8`に合わせて`0か255か`にしないといけませんね。
36
36
 
37
37
 
38
38
 

1

補足追加

2017/10/21 02:12

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,47 @@
1
+ まず結果はこれでよいですね。
2
+
3
+
4
+
5
+ |**woman.jpg**|**grabbed.jpg**|**alpha.png**|
6
+
7
+ |:--|:--:|--:|
8
+
9
+ |![イメージ説明](3d226717b9509509e6fde0f30f0c2f00.jpeg)|![イメージ説明](5d45e96407f394231201b9dd63609fe5.png)|![イメージ説明](ff8adbee2e81c3155ad68797591b1d58.png)|
10
+
11
+
12
+
13
+ ---
14
+
15
+
16
+
17
+ 大事なところは、
18
+
19
+ *Alpha channel付き画像は、PNGで出力(JPEGでは使えません)
20
+
21
+ →`cv2.imwrite("alpha.png",img_alpha)`の部分です
22
+
23
+
24
+
25
+ *Alpha channelを付加する際には、[b,g,r]に分割して[a]を付加
26
+
27
+ →`img_alpha = cv2.merge(img_bgr+[mask2])`の部分です
28
+
29
+
30
+
31
+ *Alpha channelを合成するには、mask*255
32
+
33
+ →`mask2 = mask2*255`の部分です
34
+
35
+ *255なしで出力するとよく分かりますが、マスク画像は0か1かにしかなっておらず、これだとアルファチャンネルを混ぜてもほとんど見た目は変わりませんね。なので、int8に合わせて0か255にしないといけませんね。
36
+
37
+
38
+
39
+ ---
40
+
41
+ 投稿そのままだとループしてしまうので、必要なところだけ抜き出しました。
42
+
43
+
44
+
1
45
  ```Python
2
46
 
3
47
  import numpy as np
@@ -6,7 +50,7 @@
6
50
 
7
51
 
8
52
 
9
- img = cv2.imread("woman.jpeg" )
53
+ img = cv2.imread("woman.jpg" )
10
54
 
11
55
  mask = np.zeros(img.shape[:2], np.uint8)
12
56