回答編集履歴
2
え
test
CHANGED
@@ -44,7 +44,7 @@
|
|
44
44
|
|
45
45
|
|
46
46
|
|
47
|
-
ループを消すことで300倍程度高速化できました。
|
47
|
+
ループを消すことで300倍程度高速化できました。(ループバージョンと値が一致することは numpy.array_equal() で確認)
|
48
48
|
|
49
49
|
|
50
50
|
|
1
d
test
CHANGED
@@ -32,7 +32,9 @@
|
|
32
32
|
|
33
33
|
```python
|
34
34
|
|
35
|
-
b, g, r = cv2.split(img)
|
35
|
+
b, g, r = cv2.split(img) # チャンネルごとに分割
|
36
|
+
|
37
|
+
|
36
38
|
|
37
39
|
img[(0 <= b) & (b < 100), 2] = b[(0 <= b) & (b < 100)]
|
38
40
|
|
@@ -53,3 +55,19 @@
|
|
53
55
|
181 µs ± 140 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
|
54
56
|
|
55
57
|
```
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
今回のようなケースでは以下を検討するといいと思います。
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
1. numpy の機能を使えないか検討する
|
66
|
+
|
67
|
+
2. numpy で書くことができなくて、ループが発生してしまうのであれば numba で高速化する
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
[NumPy配列のブールインデックス参照 | hydroculのメモ](https://hydrocul.github.io/wiki/numpy/ndarray-ref-boolean.html)
|
72
|
+
|
73
|
+
[Pythonで高速化処理!numbaとCythonの実行速度を比較してみた。 - Np-Urのデータ分析教室](https://www.randpy.tokyo/entry/numba_cython)
|