teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

修正

2020/05/31 07:52

投稿

tiitoi
tiitoi

スコア21960

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 = (b == 128) & (r == 0) & (r == 0)
22
+ mask = (r == 0) & (g == 0) & (b == 128)
23
23
  img1[mask] = img2[mask]
24
24
 
25
25
  cv2.imwrite("output.png", img)

3

修正

2020/05/31 07:52

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  > やりたい処理としましては、全体的にぼかし処理を加えた画像と何も処理していない元の画像を用意し、下のようなヒートマップ画像のRGB値のRとGが0となっている部分(主に濃い青色の部分)のみをぼかしている画像と入れ替え特定の部分をぼかした画像を作成したいと思っています。
2
2
 
3
- R が0かつG 0の画素は用意した別の画像の画素と差し替えるということであれば、以下のようにすればいいと思います。
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 の red == 0 かつ green == 0 の画素は差し替える
21
+ # heatmap の (R, G, B) = (0, 0, 128) の画素は差し替える
22
- img1[(g == 0) & (r == 0)] = img2[(g == 0) & (r == 0)]
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

2020/05/31 07:51

投稿

tiitoi
tiitoi

スコア21960

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

2020/05/27 08:11

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -6,17 +6,20 @@
6
6
  import cv2
7
7
  import numpy as np
8
8
 
9
- # 画像の代わり (実際に使う画像に置き換えてください)
9
+ # 画像の代わり
10
- img = np.random.randint(0, 256, (500, 500, 3), dtype=np.uint8)
10
+ img1 = np.random.randint(0, 256, (500, 500, 3), dtype=np.uint8)
11
11
 
12
- # 差し替える画像の代わり (実際に使う画像に置き換えてください)
12
+ # 差し替える画像の代わり
13
- alt = np.random.randint(0, 256, (500, 500, 3), dtype=np.uint8)
13
+ img2 = np.random.randint(0, 256, (500, 500, 3), dtype=np.uint8)
14
14
 
15
- # チャンネルごとに分解する。
15
+ # ヒートマップ画像
16
- b, g, r = cv2.split(img)
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
- img[(g == 0) & (r == 0)] = alt[(g == 0) & (r == 0)]
22
+ img1[(g == 0) & (r == 0)] = img2[(g == 0) & (r == 0)]
20
23
 
21
24
  cv2.imwrite("output.png", img)
22
25
  ```