grayscale_bilateral_filter.py
# この作品はMITライセンスの下で提供されています。
# Copyright (c) 2013-2023 OpenMV LLC. 全著作権所有。
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# グレースケールバイラテラルフィルタの例
#
# この例では、グレースケール画像へのバイラテラルフィルタの適用を示します。
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() # 画像を撮影して返します。
# color_sigmaは、ぼかしをかけて合成する際に色がどれだけ近い
# 必要があるかを制御します。値が小さいほど、より近い色である必要があります。
# 値が大きいほど条件は緩くなります。
# space_sigmaは、合成する際にピクセルの空間的な位置がどれだけ近い必要があるかを制御します
# 必要があるかを制御します。値が小さいほど、より近い色である必要があります。
# 値が大きいほど条件は緩くなります。
# 画像のすべてのピクセルに対してカーネルを実行します。
img.bilateral(3, color_sigma=0.1, space_sigma=1)
# 注意: バイラテラルフィルタは、以下の設定次第では画像に不具合を生じさせることがあります
# color_sigma/space_sigmaが強すぎます。不具合が見られる場合は
# sigma値を大きくして不具合がなくなるまで調整してください。
print(clock.fps()) # 注: OpenMV Camは接続時、速度が約半分になります
# コンピュータに接続されている間。切断するとFPSは向上します。