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()hmirrorvflipmask 付き)、remove_shadows() を追加しました。基本演算は全ピクセルに適用されるスカラー/カラー値も受け付けるようになりました。

  • 二値/モルフォロジー — 新しい二値画像タイプと binary()。線演算と erode()dilate() がマスクを受け付けるようになり、open()close()top_hat()black_hat() を追加しました。

  • フィルタcartoonflood_fillbilaterallaplacianblurgaussian_blur のエイリアス、および適応ヒストグラム均等化(histeq(adaptive=, clip_limit=, mask=))を追加しました。

  • 統計get_statistics()get_histogram() がカラーしきい値リストと invert を受け付けるようになりました。Otsu の histogram.get_threshold()Threshold オブジェクトを追加しました。

  • CMSIS CNNcnn.py の例付きで image.classify_object() を追加しました(v3.0.0 で nn モジュールに置き換えられました)。

  • スレッド処理 — MicroPython の _thread モジュールを有効化しました。

  • omv モジュール — バージョン情報(version_stringarchboard_typeboard_id)を追加しました。machine の I2C4 バスと数学の特殊関数(erfgamma など)を有効化し、モータシールドの例と多数の新しいサンプルスクリプトを追加しました。

その他の変更と改善

  • H7 のセンサー外部クロックを 48 MHz に下げました(画質が向上し、FPS が低下)。低/高 JPEG 品質はボードごとに設定可能になり(H7 向けに調整)、ボードごとの imlib_config.h による機能ゲーティングを追加しました(標準ファームウェアではすべての画像関数が有効のまま)。同梱の MicroPython を更新しました。

バグ修正

イメージング:

  • ファイル拡張子なしの image.save()、OV2640 / OV7725 / OV9650 / MT9V034 の gain_dbgain_db_ceiling マッピング、sharpen() での過剰なゲイン、モルフォロジーのエッジノイズ、画像演算でのゼロ除算、および大きすぎるフィルタカーネルサイズでのスタックスマッシュクラッシュ(現在はクリーンなエラー)を修正しました。

システム:

  • USB VCP バッファをアトミックセクションで保護し(シリアル破損、#313)、Windows での USB 接続性、SD カードが失敗した場合の内部フラッシュファイルシステムのマウント、cpufreqset_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 モジュール全体(imagesensorfirgiflcdmjpeg)の引数解析が、キーワードの前に位置引数を読み取り、位置の順序を固定するようになりました。描画メソッドへの新しいキーワード引数(draw_line()draw_rectangle()draw_circle()draw_string()draw_cross()draw_keypoints()thicknessfillscalesize を獲得)と相まって、パラメータを位置的に順序どおりでなく渡していたコード、または新しい引数のいずれかの後に位置引数の color を渡していたコードは、キーワード引数または文書化された位置順序を使用する必要があります。

コミット: e0e112468, fc74e70c3

image.mask_ellipse() が削除されました (minor)

image.mask_ellipse() が削除されました。これを呼び出していたスクリプトは、呼び出しを削除するか、代わりに明示的な ROI /マスク画像を使用する必要があります。

コミット: d7159fba3

移行チェックリスト

引数をキーワードで(または文書化された位置順序で)渡してください。特に描画メソッドの color に注意してください(引数順序の変更)。そして image.mask_ellipse() の呼び出しを削除してください(mask_ellipse の削除)。その他のスクリプトはすべて変更なしで動作します。