回答編集履歴
4
修正
answer
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
b, g, r = cv2.split(heatmap)
|
20
20
|
|
21
21
|
# heatmap の (R, G, B) = (0, 0, 128) の画素は差し替える
|
22
|
-
mask = (
|
22
|
+
mask = (r == 0) & (g == 0) & (b == 128)
|
23
23
|
img1[mask] = img2[mask]
|
24
24
|
|
25
25
|
cv2.imwrite("output.png", img)
|
3
修正
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
> やりたい処理としましては、全体的にぼかし処理を加えた画像と何も処理していない元の画像を用意し、下のようなヒートマップ画像のRGB値のRとGが0となっている部分(主に濃い青色の部分)のみをぼかしている画像と入れ替え特定の部分をぼかした画像を作成したいと思っています。
|
2
2
|
|
3
|
-
R
|
3
|
+
(R, G, B) = (0, 0, 128) の画素は用意した別の画像の画素と差し替えるということであれば、以下のようにすればいいと思います。
|
4
4
|
|
5
5
|
```python
|
6
6
|
import cv2
|
@@ -18,8 +18,9 @@
|
|
18
18
|
# heatmap をチャンネルごとに分解する。
|
19
19
|
b, g, r = cv2.split(heatmap)
|
20
20
|
|
21
|
-
# heatmap の
|
21
|
+
# heatmap の (R, G, B) = (0, 0, 128) の画素は差し替える
|
22
|
-
|
22
|
+
mask = (b == 128) & (r == 0) & (r == 0)
|
23
|
+
img1[mask] = img2[mask]
|
23
24
|
|
24
25
|
cv2.imwrite("output.png", img)
|
25
26
|
```
|
2
d
answer
CHANGED
@@ -12,13 +12,13 @@
|
|
12
12
|
# 差し替える画像の代わり
|
13
13
|
img2 = np.random.randint(0, 256, (500, 500, 3), dtype=np.uint8)
|
14
14
|
|
15
|
-
# ヒートマップ画像
|
15
|
+
# ヒートマップ画像の代わり
|
16
16
|
heatmap = np.random.randint(0, 256, (500, 500, 3), dtype=np.uint8)
|
17
17
|
|
18
18
|
# heatmap をチャンネルごとに分解する。
|
19
19
|
b, g, r = cv2.split(heatmap)
|
20
20
|
|
21
|
-
# red == 0 かつ green == 0 の画素は差し替える
|
21
|
+
# heatmap の red == 0 かつ green == 0 の画素は差し替える
|
22
22
|
img1[(g == 0) & (r == 0)] = img2[(g == 0) & (r == 0)]
|
23
23
|
|
24
24
|
cv2.imwrite("output.png", img)
|
1
d
answer
CHANGED
@@ -6,17 +6,20 @@
|
|
6
6
|
import cv2
|
7
7
|
import numpy as np
|
8
8
|
|
9
|
-
# 画像の代わり
|
9
|
+
# 画像の代わり
|
10
|
-
|
10
|
+
img1 = np.random.randint(0, 256, (500, 500, 3), dtype=np.uint8)
|
11
11
|
|
12
|
-
# 差し替える画像の代わり
|
12
|
+
# 差し替える画像の代わり
|
13
|
-
|
13
|
+
img2 = np.random.randint(0, 256, (500, 500, 3), dtype=np.uint8)
|
14
14
|
|
15
|
-
#
|
15
|
+
# ヒートマップ画像
|
16
|
-
|
16
|
+
heatmap = np.random.randint(0, 256, (500, 500, 3), dtype=np.uint8)
|
17
17
|
|
18
|
+
# heatmap をチャンネルごとに分解する。
|
19
|
+
b, g, r = cv2.split(heatmap)
|
20
|
+
|
18
21
|
# red == 0 かつ green == 0 の画素は差し替える
|
19
|
-
|
22
|
+
img1[(g == 0) & (r == 0)] = img2[(g == 0) & (r == 0)]
|
20
23
|
|
21
24
|
cv2.imwrite("output.png", img)
|
22
25
|
```
|