v1.4.0¶
v1.4.0 は基礎となる imlib の再編成です。find_blobs() / find_markers() は直接的なカラーしきい値追跡のために書き直され、多くのスタンドアロンな画像メソッドがブロブのタプルに統合され、いくつかの画像メソッドの名前が変更されました(subimg → copy、blit → replace、find_eyes → find_eye、compress → compressed)。また sensor.get_fb()/AGC/AEC トグルと約 60 個のサンプルスクリプトも追加しています。これは大規模な破壊的リリースです。下記の破壊的変更をお読みください。
ハイライト¶
カラーベースのブロブ追跡 —
find_blobs()はカラーしきい値を直接受け取り、ブロブタプルのフラットなリストを返します。imlib のクリーンアップ —
subimg()→copy()、blit()→replace()、find_eyes()→find_eye()、compress()→compressed()。センサー —
sensor.get_fb()と AGC/AEC 有効化トグルを追加しました。約 60 個のサンプルスクリプトを追加/拡充しました。
破壊的変更: ブロブ API、削除された画像メソッド、いくつかの名前変更 — 破壊的変更を参照してください。
新機能¶
センサー —
sensor.get_fb()(直近のスナップショットフレームバッファを取得)、sensor.set_gain_ctrl(enable)(AGC のトグル)、sensor.set_exposure_ctrl(enable)(AEC のトグル)を追加しました。画像 — 画像の添字(
img[i])でピクセルの読み取りと書き込みの両方がサポートされるようになりました(グレースケール/RGB565/JPEG)。インプレースのimage.compress()と JPEG 関数のquality=キーワードを追加しました。find_blobs()/find_markers()/find_features()は、何も見つからなかった場合に非リスト値ではなく空の(反復可能な)リストを返すようになりました。約 60 個のサンプルスクリプト(ボード制御、画像フィルタ、カラー追跡、顔/目/特徴検出、WiFi シールド)と 2 つ目の虹彩検出サンプルを追加しました。
その他の変更と改善¶
image.histeq()がグレースケールだけでなく RGB565 画像でも動作するようになりました。
バグ修正¶
起動時に
pyb.DACを初期化して DAC が動作するようにし(#121)、壊れていたimage.dilate()、WINCclient.send()のゼロバイト破損、ブロブマージの再反復、最初の使用後にファイルシステムを壊していたファイルバッファ再初期化のバグ、サーモパイルのTo_min/To_maxの計算(#113)を修正し、上流の MicroPython HAL I2C/DMA パッチを適用しました。
ハードウェアとボードのサポート¶
WiFi シールド — WINC1500 を Rev-B ボードファイルに更新しました。
pyb.DAC— DAC ペリフェラルを有効化しました。
破壊的 API 変更¶
v1.3.0 から v1.4.0 までのユーザーに見える API の破壊的変更。範囲:modules/ 内の Python C モジュールと scripts/libraries/ 内の Python ライブラリ。
各変更には影響度のタグが付いています:
メジャー — その機能を使用していたほとんどのスクリプトに影響します。コードを移植する必要があります。
マイナー — 狭い範囲の API で、それを使用していたスクリプトのみに影響します。
変更はその順序で影響度別にグループ化されています。コードの移植だけが目的であれば、末尾の 移行チェックリスト へ進んでください。各コミットハッシュは GitHub 上の差分へリンクしています。
find_blobs() / find_markers() が書き直されました (メジャー)¶
image.find_blobs() / find_markers() は、カラーベースの追跡のために書き直されました:事前にセグメント化された画像を操作する代わりに、カラーしきい値(およびオプションのフィルタ関数)を直接渡すようになり、結果は色ごとのネストしたツリーではなく、10 要素のブロブタプル(カラーコードフィールド付き)からなる単一のフラットなリストになりました。カラー追跡スクリプトを、カラーしきい値を渡してフラットなリストを反復するように書き換えてください。
スタンドアロンな画像メソッドが削除されました (メジャー)¶
image.threshold、image.centroid()、image.orientation_radians()、image.orientation_degrees()、image.pixels() が削除されました。重心/向き/ピクセル数のデータは、find_blobs() が返すブロブタプルのフィールドとして利用できるようになりました。
コミット: 9e5d379c1
imlib メソッドの名前変更 (メジャー)¶
いくつかの画像メソッドが名前変更/再設計されました:image.subimg() → image.copy()、image.blit() → image.replace()、image.blend() は他の 2 画像演算に合わせて変更されました。image.scale() / scaled() / rainbow() メソッドは削除されました(rainbow は FIR モジュールへ移動しました)。呼び出しを新しい名前に更新してください。
コミット: b534dc6ff
find_eyes() が find_eye() に名前変更されました (マイナー)¶
image.find_eyes() は image.find_eye() に名前変更され、以前の eyes タプルの代わりに虹彩の 2 要素タプル (x, y) を返すようになりました。呼び出しの名前を変更し、戻り値の処理を更新してください。
コミット: 7a01a9bed
image.compress() が compressed() に名前変更されました (マイナー)¶
image.compress()(新しい JPEG 画像を返していた)は image.compressed() に名前変更されました。新しい image.compress() は代わりに画像をインプレースで圧縮し、None を返します。image.save() も quality= キーワードを追加し、True の代わりに None を返すようになりました。img.compress(q)(返された画像を期待するもの)を img.compressed(quality=q) に移行してください。
コミット: 367e5fdd3
移行チェックリスト¶
v1.4.0 へのクリーンな移植では、通常の作業は次のとおりです:
カラー追跡コードを、
find_blobs()/find_markers()にカラーしきい値を渡してフラットなブロブタプルのリストを反復するように書き換える(find_blobs の書き直し)。削除されたスタンドアロンメソッドの代わりに、ブロブタプルから重心/向き/ピクセルのデータを読み取る(削除された画像メソッド)。
subimg→copy、blit→replaceに名前を変更し、blend()の呼び出しを修正し、scale/scaled/rainbowを置き換える(imlib の名前変更)。find_eyes()→find_eye()(find_eye の名前変更)とcompress()→compressed()(compress の名前変更)に名前を変更する。
その他のスクリプトはすべて変更なしで動作します。