median_filter.py
# この作品はMITライセンスの下で提供されています。
# Copyright (c) 2013-2023 OpenMV LLC. 全著作権所有。
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# 中央値フィルタの例
#
# この例では、中央値フィルタリングを示します。中央値フィルタリングは、各ピクセルを
# NxN近傍の中央値で置き換えます。中央値フィルタリングは、エッジを保ちながら
# 画像中のノイズを除去するのに適しています。
import csi
import time
csi0 = csi.CSI()
csi0.reset() # カメラセンサーを初期化します。
csi0.pixformat(csi.RGB565) # またはcsi.GRAYSCALE
csi0.framesize(csi.QQVGA) # または csi.QVGA (またはその他)
csi0.snapshot(time=2000) # 新しい設定を反映させます。
clock = time.clock() # FPSを計測します。
while True:
clock.tick() # snapshot()呼び出し間の経過ミリ秒を計測します。
img = csi0.snapshot() # 画像を撮影して返します。
# 中央値フィルタの最初の引数はカーネルサイズで、
# 0、1、2のいずれかを指定でき、それぞれ1x1、3x3、5x5カーネルに対応します。2番目の
# 引数"percentile"は、NxN近傍から選択するパーセンタイル値です。
# 0.5は中央値、0.25は下側四分位数、0.75は
# 上側四分位数になります。
img.median(1, percentile=0.5)
print(clock.fps()) # 注: OpenMV Camは接続時、速度が約半分になります
# コンピュータに接続されている間。切断するとFPSは向上します。