flood_fill.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.RGB565) # または GRAYSCALE…
csi0.framesize(csi.QVGA) # または QQVGA…
csi0.snapshot(time=2000)
clock = time.clock()
while True:
clock.tick()
# seed_threshold は、
# 初期ピクセルと塗りつぶされる各ピクセルとの間で許容される最大差分を制御します。
# フラッドフィルが画像全体を塗りつぶさないよう、これを適切に設定することが重要です。
# floating_threshold は、
# 任意の 2 ピクセル間で許容される最大差分を制御します。これは非常に低いしきい値でも
# 画像全体を簡単に塗りつぶしてしまう可能性があります。
# flood_fill は、両方のしきい値条件を満たすピクセルを塗りつぶします。
# "invert" を使うと塗りつぶし対象を反転でき、
# "clear_background" を使うと塗りつぶされた領域以外をすべてクリアできます。
img = csi0.snapshot().flood_fill(
(csi0.width() // 2, csi0.height() // 2),
seed_threshold=0.05,
floating_threshold=0.05,
color=(255, 0, 0),
invert=False,
clear_background=False,
)
print(clock.fps())