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

回答編集履歴

1

追加回答

2021/08/13 01:19

投稿

ppaul
ppaul

スコア24672

answer CHANGED
@@ -13,4 +13,23 @@
13
13
  この場合は、np.mean(array,axis=2).astype('uint8') とすべきです。
14
14
  普通は、cv2.cvtColor(array, cv2.COLOR_BGR2GRAY)でやるでしょう。
15
15
 
16
- [Python, OpenCV, NumPyでカラー画像を白黒(グレースケール)に変換](https://note.nkmk.me/python-opencv-numpy-color-to-gray/) をご覧ください。
16
+ [Python, OpenCV, NumPyでカラー画像を白黒(グレースケール)に変換](https://note.nkmk.me/python-opencv-numpy-color-to-gray/) をご覧ください。
17
+
18
+ - 平均など一般的なものではなく独自の関数を設定したい場合にはどうしたらよいのでしょうか?
19
+
20
+ これを最初から書いて置いた方が、回答は速く得られますよ。
21
+ 回答者からは、初心者なのか、ある程度分かっている人が聞いているのかは分からないのです。
22
+
23
+ 回答は以下です。
24
+
25
+ ```python
26
+ def f(x):
27
+ return sum(x)//len(x)
28
+
29
+ np.apply_along_axis(f, 2, array)
30
+ ```
31
+
32
+ lambda式を使えば、以下でも同じです。
33
+ ```python
34
+ np.apply_along_axis(lambda x: sum(x)//len(x), 2, array)
35
+ ```