mode_adaptive_threshold_filter.py
# この作品はMITライセンスの下で提供されています。
# Copyright (c) 2013-2023 OpenMV LLC. 全著作権所有。
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# 最頻値適応しきい値フィルタの例
#
# この例では、適応的しきい値処理を伴う最頻値フィルタリングを示します。
# mode(threshold=True)の場合、mode()メソッドは、あるピクセル周辺の最頻値からオフセットを
# 引いた値とそのピクセルを比較することで、画像に適応的しきい値処理を行います。
# RGB565画像に最頻値フィルタを使うのは避けてください。画像のエッジにアーティファクトが発生します……
import csi
import time
csi0 = csi.CSI()
csi0.reset() # カメラセンサーを初期化します。
csi0.pixformat(csi.GRAYSCALE) # または csi.RGB565
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カーネルに対応します。
img.mode(1, threshold=True, offset=5, invert=True)
print(clock.fps()) # 注: OpenMV Camは接続時、速度が約半分になります
# コンピュータに接続されている間。切断するとFPSは向上します。