v2.8.0¶
v2.8.0 は大規模なリリースです。ハードウェア JPEG エンコーダと H7 ADC/DAC を備えた OpenMV Cam H7(STM32H7)を立ち上げ、image API の大幅な見直し(描画の太さ/塗りつぶし、数学/二値演算、多数の新しいフィルタ、Otsu しきい値処理)、MicroPython のスレッド処理、および omv バージョンモジュールを提供します。Python の引数解析順序が固定され、image.mask_ellipse() が削除されました。以下の互換性のない変更点をお読みください。
ハイライト¶
OpenMV Cam H7 — ハードウェア JPEG エンコーダと H7 ADC / DAC を備えた新しい STM32H7 ボード。
imageの見直し — 線の太さ、図形の塗りつぶし、draw_arrow()/draw_image()、完全な数学/二値演算、多数の新しいフィルタ。Otsu しきい値処理 —
histogram.get_threshold()とThresholdオブジェクト。スレッド処理 — MicroPython の
_threadサポート。omvモジュール — バージョン/ボード情報。互換性に関する注意: Python の位置引数の順序が厳密になり、
image.mask_ellipse()が削除されました。互換性のない変更点を参照してください。
新機能¶
OpenMV Cam H7 — ハードウェア JPEG エンコーダ、H7 ADC、H7 DAC を備えた STM32H7 ボードのサポート。
描画 — 線の
thickness、図形のfill(長方形/円)、テキストのscale/カーニング、draw_string()へのmono_spaceキーワード、image.draw_arrow()、image.draw_image()(スプライト/マスク描画)を追加しました。数学演算 —
add()、sub()、mul()、div()、min()、max()、difference()、blend()、replace()(hmirror/vflip/mask付き)、remove_shadows()を追加しました。基本演算は全ピクセルに適用されるスカラー/カラー値も受け付けるようになりました。二値/モルフォロジー — 新しい二値画像タイプと
binary()。線演算とerode()/dilate()がマスクを受け付けるようになり、open()/close()/top_hat()/black_hat()を追加しました。フィルタ —
cartoon、flood_fill、bilateral、laplacian、blur/gaussian_blurのエイリアス、および適応ヒストグラム均等化(histeq(adaptive=, clip_limit=, mask=))を追加しました。統計 —
get_statistics()/get_histogram()がカラーしきい値リストとinvertを受け付けるようになりました。Otsu のhistogram.get_threshold()とThresholdオブジェクトを追加しました。CMSIS CNN —
cnn.pyの例付きでimage.classify_object()を追加しました(v3.0.0 でnnモジュールに置き換えられました)。スレッド処理 — MicroPython の
_threadモジュールを有効化しました。omvモジュール — バージョン情報(version_string、arch、board_type、board_id)を追加しました。machineの I2C4 バスと数学の特殊関数(erf、gammaなど)を有効化し、モータシールドの例と多数の新しいサンプルスクリプトを追加しました。
その他の変更と改善¶
H7 のセンサー外部クロックを 48 MHz に下げました(画質が向上し、FPS が低下)。低/高 JPEG 品質はボードごとに設定可能になり(H7 向けに調整)、ボードごとの
imlib_config.hによる機能ゲーティングを追加しました(標準ファームウェアではすべての画像関数が有効のまま)。同梱の MicroPython を更新しました。
バグ修正¶
イメージング:
ファイル拡張子なしの
image.save()、OV2640 / OV7725 / OV9650 / MT9V034 のgain_db/gain_db_ceilingマッピング、sharpen()での過剰なゲイン、モルフォロジーのエッジノイズ、画像演算でのゼロ除算、および大きすぎるフィルタカーネルサイズでのスタックスマッシュクラッシュ(現在はクリーンなエラー)を修正しました。
システム:
USB VCP バッファをアトミックセクションで保護し(シリアル破損、#313)、Windows での USB 接続性、SD カードが失敗した場合の内部フラッシュファイルシステムのマウント、
cpufreqのset_frequency()PLLP 値、およびブートローダーのファームウェアフラッシュのバグを修正しました。
ハードウェアとボードのサポート¶
OpenMV Cam H7(STM32H7) — ハードウェア JPEG エンコーダと H7 ADC / DAC を備えた新しいボード。
machine— I2C4 バスを有効化しました。
互換性のない API 変更¶
v2.7.0 と v2.8.0 の間でユーザーから見える API の互換性のない変更点です。対象範囲: modules/ 内の Python C モジュールと scripts/libraries/ 内の Python ライブラリ。
どちらの互換性のない変更も minor であり、該当する機能を使っていたスクリプトにのみ影響します。各コミットハッシュは GitHub 上の差分にリンクしています。
Python の位置引数の順序が厳密になりました (minor)¶
Python C モジュール全体(image / sensor / fir / gif / lcd / mjpeg)の引数解析が、キーワードの前に位置引数を読み取り、位置の順序を固定するようになりました。描画メソッドへの新しいキーワード引数(draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints() が thickness / fill / scale / size を獲得)と相まって、パラメータを位置的に順序どおりでなく渡していたコード、または新しい引数のいずれかの後に位置引数の color を渡していたコードは、キーワード引数または文書化された位置順序を使用する必要があります。
image.mask_ellipse() が削除されました (minor)¶
image.mask_ellipse() が削除されました。これを呼び出していたスクリプトは、呼び出しを削除するか、代わりに明示的な ROI /マスク画像を使用する必要があります。
コミット: d7159fba3
移行チェックリスト¶
引数をキーワードで(または文書化された位置順序で)渡してください。特に描画メソッドの color に注意してください(引数順序の変更)。そして image.mask_ellipse() の呼び出しを削除してください(mask_ellipse の削除)。その他のスクリプトはすべて変更なしで動作します。