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 — додано
sensor.get_fb()та перемикачі AGC/AEC.Додано/розширено ~60 прикладів скриптів.
Критична зміна: API плям, видалені методи зображень та кілька перейменувань — перегляньте критичні зміни.
Нові можливості¶
Sensor — додано
sensor.get_fb()(отримання останнього кадрового буфера знімка),sensor.set_gain_ctrl(enable)(перемикач AGC) таsensor.set_exposure_ctrl(enable)(перемикач AEC).Image — індексний доступ до зображень (
img[i]) тепер підтримує читання та запис пікселів (відтінки сірого / RGB565 / JPEG); додано вбудованеimage.compress()та ключове словоquality=у функціях JPEG;find_blobs()/find_markers()/find_features()тепер повертають порожній (ітерований) список замість не-списку, якщо нічого не знайдено.Додано ~60 прикладів скриптів (керування платою, фільтри зображень, відстеження кольору, виявлення обличчя / очей / ознак, WiFi-щит) та другий приклад виявлення райдужки.
Інші зміни та вдосконалення¶
image.histeq()тепер працює із зображеннями RGB565, а не лише у відтінках сірого.
Виправлення помилок¶
Ініціалізовано
pyb.DACпри завантаженні, щоб DAC працював (#121), виправлено зламанийimage.dilate(), пошкодження нульових байтів уclient.send()WINC, повторну ітерацію при злитті плям, помилку повторної ініціалізації файлового буфера, що ламала файлову систему після першого використання, обчисленняTo_min/To_maxтермопілу (#113), а також застосовано оновлення I2C/DMA HAL MicroPython від upstream.
Апаратне забезпечення та підтримка плат¶
WiFi-щит — WINC1500 оновлено до файлів плати Rev-B.
pyb.DAC— увімкнено периферійний пристрій DAC.
Критичні зміни API¶
Критичні зміни API, видимі користувачу, між v1.3.0 та v1.4.0. Область дії: C-модулі Python у modules/ та бібліотеки Python у scripts/libraries/.
Кожна зміна позначена за ступенем впливу:
major — стосується більшості скриптів, що використовували цю функцію; потрібен перенос коду.
minor — вузький API; стосується лише скриптів, що використовували його.
Зміни згруповані за ступенем впливу у відповідному порядку. Якщо ви просто хочете перенести код, перейдіть до контрольного списку міграції в кінці. Кожен хеш коміту посилається на його diff на GitHub.
find_blobs() / find_markers() переписано (major)¶
image.find_blobs() / find_markers() переписано для відстеження на основі кольору: тепер ви передаєте кольорові пороги (та необов’язкову функцію фільтра) безпосередньо замість роботи з попередньо сегментованим зображенням, а результат — це єдиний плаский список кортежів плям із 10 елементів (з полем кольорового коду) замість вкладеного дерева по кольору. Переробіть скрипти відстеження кольору, щоб передавати кольорові пороги та ітерувати плаский список.
Окремі методи зображень видалено (major)¶
image.threshold, image.centroid(), image.orientation_radians(), image.orientation_degrees() та image.pixels() видалено. Дані центроїда / орієнтації / кількості пікселів тепер доступні як поля кортежів плям, повернутих find_blobs().
Коміти: 9e5d379c1
Перейменування методів imlib (major)¶
Кілька методів зображень перейменовано/перероблено: image.subimg() → image.copy(), image.blit() → image.replace(), а image.blend() змінено відповідно до інших операцій з двома зображеннями. Методи image.scale() / scaled() / rainbow() видалено (rainbow перенесено до модуля FIR). Оновіть виклики на нові імена.
Коміти: b534dc6ff
find_eyes() перейменовано на find_eye() (minor)¶
image.find_eyes() перейменовано на image.find_eye() і тепер повертає 2-кортеж координат зіниці (x, y) замість попереднього кортежу очей. Перейменуйте виклик та оновіть обробку результату.
Коміти: 7a01a9bed
image.compress() перейменовано на compressed() (minor)¶
image.compress() (яка повертала нове зображення JPEG) перейменовано на image.compressed(); новий image.compress() натомість стискає зображення на місці та повертає None. image.save() також отримав ключове слово quality= та тепер повертає None замість True. Перенесіть 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).
Всі інші скрипти працюють без змін.