質問編集履歴
10
こで
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,48 +1,48 @@
|
|
1
|
-
|
1
|
+
```ここに言語を入力
|
2
|
+
import numpy as np
|
3
|
+
import cv2
|
4
|
+
import scipy.stats as sstats
|
5
|
+
import matplotlib.pyplot as plt
|
2
6
|
|
3
|
-
1 import numpy as np
|
4
|
-
2 import cv2
|
5
|
-
3 import scipy.stats as sstats
|
6
|
-
4 import matplotlib.pyplot as plt
|
7
|
-
5
|
8
|
-
|
7
|
+
def func1(luv):
|
9
|
-
|
8
|
+
l, u, v = cv2.split(luv.astype(int))
|
10
|
-
|
9
|
+
mode_l = sstats.mode(l[l.nonzero()])[0][0]
|
11
|
-
|
10
|
+
mode_u = sstats.mode(u[l.nonzero()])[0][0]
|
12
|
-
|
11
|
+
mode_v = sstats.mode(v[l.nonzero()])[0][0]
|
13
|
-
|
12
|
+
luv[(mode_u - u)**2 + (mode_v - v)**2 < 3000., :] = [0, 0, 0]
|
14
|
-
|
13
|
+
return luv
|
15
|
-
13
|
16
|
-
14 def func2(luv):
|
17
|
-
15 l, u, v = cv2.split(luv)
|
18
|
-
16 mode_l = sstats.mode(l[l.nonzero()])[0][0]
|
19
|
-
17 mode_u = sstats.mode(u[l.nonzero()])[0][0]
|
20
|
-
18 mode_v = sstats.mode(v[l.nonzero()])[0][0]
|
21
|
-
19 mode = np.array([mode_l, mode_u, mode_v], dtype=int)
|
22
|
-
20 a = (mode - luv)**2
|
23
|
-
21 b = a[:, :, 1] + a[:, :, 2]
|
24
|
-
22 c = (b >= 3000).astype(int)
|
25
|
-
23 cs = np.stack([c] * 3, axis=2)
|
26
|
-
24 luv = luv * cs
|
27
|
-
25 return luv
|
28
|
-
26
|
29
|
-
27 bgr = cv2.imread('bara.jpg')
|
30
|
-
28 luv = cv2.cvtColor(bgr, cv2.COLOR_BGR2Luv)
|
31
|
-
29
|
32
|
-
30 luvs = func1(luv)
|
33
|
-
31 result_s = cv2.cvtColor(luvs, cv2.COLOR_Luv2BGR)
|
34
|
-
32 cv2.imwrite("result_s.jpg",result_s)
|
35
|
-
33 rgb = result_s[:, :, [2, 1, 0]]
|
36
|
-
34 plt.imshow(rgb)
|
37
|
-
35 plt.show()
|
38
|
-
36
|
39
|
-
37 luvk = func2(luv)
|
40
|
-
38 result_k = cv2.cvtColor(luvk, cv2.COLOR_Luv2BGR)
|
41
|
-
39 cv2.imwrite("result_k.jpg",result_k)
|
42
|
-
40 rgb = result_k[:, :, [2, 1, 0]]
|
43
|
-
41 plt.imshow(rgb)
|
44
|
-
42 plt.show()
|
45
14
|
|
15
|
+
def func2(luv):
|
16
|
+
l, u, v = cv2.split(luv)
|
17
|
+
mode_l = sstats.mode(l[l.nonzero()])[0][0]
|
18
|
+
mode_u = sstats.mode(u[l.nonzero()])[0][0]
|
19
|
+
mode_v = sstats.mode(v[l.nonzero()])[0][0]
|
20
|
+
mode = np.array([mode_l, mode_u, mode_v], dtype=int)
|
21
|
+
a = (mode - luv)**2
|
22
|
+
b = a[:, :, 1] + a[:, :, 2]
|
23
|
+
c = (b >= 3000).astype(int)
|
24
|
+
cs = np.stack([c] * 3, axis=2)
|
25
|
+
luv = luv * cs
|
26
|
+
return luv
|
27
|
+
|
28
|
+
bgr = cv2.imread('bara.jpg')
|
29
|
+
luv = cv2.cvtColor(bgr, cv2.COLOR_BGR2Luv)
|
30
|
+
|
31
|
+
luvs = func1(luv)
|
32
|
+
result_s = cv2.cvtColor(luvs, cv2.COLOR_Luv2BGR)
|
33
|
+
cv2.imwrite("result_s.jpg",result_s)
|
34
|
+
rgb = result_s[:, :, [2, 1, 0]]
|
35
|
+
plt.imshow(rgb)
|
36
|
+
plt.show()
|
37
|
+
|
38
|
+
luvk = func2(luv)
|
39
|
+
result_k = cv2.cvtColor(luvk, cv2.COLOR_Luv2BGR)
|
40
|
+
cv2.imwrite("result_k.jpg",result_k)
|
41
|
+
rgb = result_k[:, :, [2, 1, 0]]
|
42
|
+
plt.imshow(rgb)
|
43
|
+
plt.show()
|
44
|
+
```黒(輝度Lが0)以外の背景色に近い色(最頻値からの色の距離が小さいもの)を黒く塗るプログラムを作成しました。RGBについては、昨日質問させていただいて、お二人のご助言により計算速度を向上できました。今度はCIELuv空間で試みたところ、一つの方法(result_s.jpg)ではうまくいくのですが、もう一つの方法ではエラーが出てうまくいきません。result_k.jpgがきちんと出力できるよう、ご教示いただけないでしょうか?
|
45
|
+
|
46
46
|
入力画像と、成功した結果result_s.jpgはそれぞれ下画像のとおりです。
|
47
47
|
|
48
48
|

|
9
あ
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
黒以外の
|
1
|
+
黒(輝度Lが0)以外の背景色に近い色(最頻値からの色の距離が小さいもの)を黒く塗るプログラムを作成しました。RGBについては、昨日質問させていただいて、お二人のご助言により計算速度を向上できました。今度はCIELuv空間で試みたところ、一つの方法(result_s.jpg)ではうまくいくのですが、もう一つの方法ではエラーが出てうまくいきません。result_k.jpgがきちんと出力できるよう、ご教示いただけないでしょうか?
|
2
2
|
|
3
3
|
1 import numpy as np
|
4
4
|
2 import cv2
|
8
あ
title
CHANGED
File without changes
|
body
CHANGED
@@ -43,6 +43,8 @@
|
|
43
43
|
41 plt.imshow(rgb)
|
44
44
|
42 plt.show()
|
45
45
|
|
46
|
+
入力画像と、成功した結果result_s.jpgはそれぞれ下画像のとおりです。
|
47
|
+
|
46
48
|

|
47
49
|

|
48
50
|
|
7
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -43,8 +43,8 @@
|
|
43
43
|
41 plt.imshow(rgb)
|
44
44
|
42 plt.show()
|
45
45
|
|
46
|
-
入力画像はこれです。
|
46
|
+

|
47
|
-
result_s.jpgはこれです。
|
47
|
+

|
48
48
|
|
49
49
|
エラーメッセージはこれです。
|
50
50
|
Traceback (most recent call last):
|
6
タイトル
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Python:
|
1
|
+
Python:画素の置き換えの処理の違いについて
|
body
CHANGED
File without changes
|
5
タイトル
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
Python:CIELuv空間での背景削除の処理の違いについて
|
body
CHANGED
File without changes
|
4
*
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
8 mode_l = sstats.mode(l[l.nonzero()])[0][0]
|
11
11
|
9 mode_u = sstats.mode(u[l.nonzero()])[0][0]
|
12
12
|
10 mode_v = sstats.mode(v[l.nonzero()])[0][0]
|
13
|
-
11 luv[(mode_u - u)
|
13
|
+
11 luv[(mode_u - u)**2 + (mode_v - v)**2 < 3000., :] = [0, 0, 0]
|
14
14
|
12 return luv
|
15
15
|
13
|
16
16
|
14 def func2(luv):
|
3
**
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
CIELuv空間での背景削除の処理の違いについて
|
1
|
+
**CIELuv空間での背景削除の処理の違いについて
|
body
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
8 mode_l = sstats.mode(l[l.nonzero()])[0][0]
|
11
11
|
9 mode_u = sstats.mode(u[l.nonzero()])[0][0]
|
12
12
|
10 mode_v = sstats.mode(v[l.nonzero()])[0][0]
|
13
|
-
11 luv[(mode_u - u)
|
13
|
+
11 luv[(mode_u - u)**2 + (mode_v - v)**2 < 3000., :] = [0, 0, 0]
|
14
14
|
12 return luv
|
15
15
|
13
|
16
16
|
14 def func2(luv):
|
2
2乗の**が消えていた
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
8 mode_l = sstats.mode(l[l.nonzero()])[0][0]
|
11
11
|
9 mode_u = sstats.mode(u[l.nonzero()])[0][0]
|
12
12
|
10 mode_v = sstats.mode(v[l.nonzero()])[0][0]
|
13
|
-
11 luv[(mode_u - u) **2 + (mode_v - v) **2 < 3000., :] = [0, 0, 0]
|
13
|
+
11 luv[(mode_u - u) ** 2 + (mode_v - v) ** 2 < 3000., :] = [0, 0, 0]
|
14
14
|
12 return luv
|
15
15
|
13
|
16
16
|
14 def func2(luv):
|
1
2乗の**が消えていたので
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
8 mode_l = sstats.mode(l[l.nonzero()])[0][0]
|
11
11
|
9 mode_u = sstats.mode(u[l.nonzero()])[0][0]
|
12
12
|
10 mode_v = sstats.mode(v[l.nonzero()])[0][0]
|
13
|
-
11 luv[(mode_u - u)**2 + (mode_v - v)**2 < 3000., :] = [0, 0, 0]
|
13
|
+
11 luv[(mode_u - u) **2 + (mode_v - v) **2 < 3000., :] = [0, 0, 0]
|
14
14
|
12 return luv
|
15
15
|
13
|
16
16
|
14 def func2(luv):
|