v3.6.3#

v3.6.3 włącza TensorFlow na OpenMV 3 / F7, dodaje obsługę modeli uint8/int8/float32, przełącza sensory termiczne MLX90640/AMG8833 na sprzętowe I2C, dodaje histogramy różnicy obrazów i przesunięcie korekcji obiektywu oraz przebudowuje kontrolę odczytu. Stałe podpowiedzi image zostały przemianowane, a skalowanie draw_image() zmienione — przeczytaj poniższe zmiany łamiące zgodność.

Najważniejsze zmiany#

  • TensorFlow na OpenMV 3 / F7tf włączony na kamerach opartych na F7, z obsługą modeli uint8/int8/float32.

  • Sensory termiczne — MLX90640 i AMG8833 przełączone na sprzętowe I2C z nowym sterownikiem MLX90640.

  • Obrazowanie — obsługa różnicy obrazów w get_histogram() oraz korekcja przesunięcia dla lens_corr().

  • draw_image — palety alfa w trybie skali szarości i przebudowana kontrola odczytu.

  • Zmiana łamiąca zgodność: stałe podpowiedzi image zostały przemianowane, a ujemne skalowanie draw_image() usunięte — zobacz zmiany łamiące zgodność.

Nowe funkcje#

  • TensorFlow — włączono tf na OpenMV 3 / F7 i zaktualizowano TensorFlow o obsługę modeli uint8 / int8 / float32.

  • get_histogram() — dodano możliwość różnicy obrazów.

  • lens_corr() — dodano korekcję przesunięcia.

  • draw_image() — palety alfa działają teraz w trybie skali szarości (bez interpolacji dwuliniowej), z paletami alfa interpolowanymi dwuliniowo i centrowaniem obrazu; nowy kod kontroli odczytu.

Pozostałe zmiany i ulepszenia#

  • Przełączono MLX90640 i AMG8833 na sprzętowe I2C (nowy sterownik MLX90640, sprzętowe I2C w konfiguracji płytki dla sensorów zewnętrznych, wyższa liczba ponownych prób odczytu MLX), włączono I2C fast-mode-plus na kamerach, które go obsługują, dodano odczyt/zapis bajtów cambus z czasami I2C oraz pominięto stosowanie alfy, gdy wynosi ona 0, dla wydajności.

Poprawki błędów#

Kamera i obrazowanie:

  • Naprawiono i przyspieszono korekcję obrotu, błąd konwersji Bayer-na-YCbCr przy lewej krawędzi oraz dodano poprawkę krawędzi do bayer_to_y() / bayer_to_binary().

Narzędzia:

  • Naprawiono błędy Python 2/3 oraz kolejność wywołań get_statistics().

Zmiany API łamiące zgodność#

Widoczne dla użytkownika zmiany API łamiące zgodność między v3.6.2 a v3.6.3. Zakres: moduły C w Pythonie w modules/ oraz biblioteki Pythona w scripts/libraries/.

Każda zmiana jest oznaczona jej wpływem:

  • minor — wąskie API; dotyczy tylko skryptów, które go używały.

  • behavior — to samo API, inne wyniki; sprawdź ponownie dostrojone skrypty.

Zmiany są pogrupowane według wpływu w tej kolejności. Jeśli chcesz po prostu przenieść swój kod, przejdź do listy kontrolnej migracji na końcu. Każdy hash commita prowadzi do jego diffa na GitHubie.

Stałe podpowiedzi image przemianowane (minor)#

Stałe podpowiedzi rysowania image zostały przemianowane: image.INTERPOLATE_BILINEARimage.IMAGE_HINT_BILINEAR oraz image.IMAGE_CENTERimage.IMAGE_HINT_CENTER. Skrypty przekazujące stare nazwy stałych do draw_image() muszą używać nowych nazw. (Zostają one ponownie przemianowane na image.BILINEAR / image.CENTER w v3.7.0.)

Commity: 8f8872537

Ujemne skalowanie draw_image() usunięte (behavior)#

image.draw_image() nie obsługuje już ujemnego skalowania, a punkt próbkowania tekstury został przeniesiony na środek piksela. Skrypty, które polegały na ujemnym skalowaniu do odwracania obrazu podczas rysowania, muszą odwrócić go w inny sposób, a wynik może być przesunięty o maksymalnie pół piksela względem poprzedniej wersji.

Commity: 7e83dbb92

Lista kontrolna migracji#

Zmień nazwy image.INTERPOLATE_BILINEAR / image.IMAGE_CENTER na image.IMAGE_HINT_BILINEAR / image.IMAGE_HINT_CENTER (przemianowanie stałych podpowiedzi) oraz zastąp każde ujemne skalowanie draw_image() jawnym odwróceniem (zmiana skalowania draw_image). Wszystkie pozostałe skrypty działają bez zmian.