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 / F7 —
tfwłą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 dlalens_corr().draw_image — palety alfa w trybie skali szarości i przebudowana kontrola odczytu.
Zmiana łamiąca zgodność: stałe podpowiedzi
imagezostały przemianowane, a ujemne skalowaniedraw_image()usunięte — zobacz zmiany łamiące zgodność.
Nowe funkcje¶
TensorFlow — włączono
tfna 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_BILINEAR → image.IMAGE_HINT_BILINEAR oraz image.IMAGE_CENTER → image.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.