v1.2.0¶
v1.2.0, klasik OpenMV görüntüleme API’sinin büyük bir kısmını oluşturan temel ve çok büyük bir sürümdür: çizim yöntemleri, ikili / morfoloji işlemleri, anahtar nokta tanımlayıcıları (FAST / FREAK / LBP), renk dönüşümleri ve image.statistics, BMP / PPM / JPEG dosya G/Ç, lcd, mjpeg, gif ve mlx termal modülleri, OV7725 kamerası ve pek çok sensor denetimi. Bazı temel sensor davranışları değişti — aşağıdaki değişiklikleri okuyun.
Öne çıkanlar¶
Çizim API’si —
draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints().İkili / morfoloji —
binary(),invert(),and/or/xor/...,erode()/dilate()/morph(),negate()/difference().Anahtar noktalar —
match_descriptor()/save_descriptor()/load_descriptor()ile FAST / FREAK / LBP tanımlayıcıları.OV7725 kamera desteği;
image.statistics; BMP/PPM/JPEG dosya G/Ç.Bozucu değişiklik:
sensor.reset(),sensor.snapshot()vesensor.set_pixformat()davranışı değişti — bozucu değişikliklere bakın.
Yeni özellikler¶
Çizim — anahtar sözcük argümanlarıyla (renk, kalınlık, …)
image.draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints()eklendi.İkili / morfoloji —
image.binary(),invert(),and()/nand()/or()/nor()/xor()/xnor(),erode()/dilate()/morph(),negate()/difference(),pixels(),centroid(),orientation_radians()/orientation_degrees()vewidth()/height()/format()eklendi.Anahtar noktalar / tanımlayıcılar —
find_keypoints()ile FAST anahtar nokta çıkarımı, FREAK / LBP için birleşik birmatch_descriptor()ilesave_descriptor()/load_descriptor(), ayrıca bir profil-yüz Haar/LBP basamaklı sınıflandırıcısı.Renk / istatistikler —
image.statisticsve renk dönüştürme işlevleri (rgb_to_lab/lab_to_rgb/rgb_to_grayscale/grayscale_to_rgb).Dosya G/Ç — BMP / PPM (P2/P3/P5/P6) / JPEG yükleme ve kaydetme (gri tonlamalı JPEG ve 4:2:0 / 4:2:2 renklilik alt örneklemesi dahil).
Modüller — her biri örnek betiklerle birlikte yeni
lcd(LCD shield),mjpeg(video kaydı), renkligif(Gif.loop()ile) vemlxtermal kamera modülleri.Sensör —
sensor.get_id()(+ OV9650/OV2640/OV7725 PID sabitleri),sensor.set_special_effect()(SDE_* sabitleri),sensor.set_image_filter()(FILTER_BW / FILTER_SKIN),HQVGAçerçeve boyutu veimage.set_pixel(x, y, …)eklendi.WiFi — ATWINC1500 WiFi sürücüsü ve OpenMV 1/2 BSP temel altyapısı, ayrıca bir BLE örneği eklendi.
Diğer değişiklikler ve iyileştirmeler¶
Çerçeve arabelleği (frame buffer) artık OpenMV IDE’ye akış aktarmadan önce JPEG ile sıkıştırılıyor (daha düşük bant genişliği); JPEG sıkıştırması yerinde yapılıyor; OV7725 Y/D yakınlaştırması rastgele ölçeklemeyi etkinleştiriyor; QVGA’da çalışan iyileştirilmiş (daha hızlı) Haar yüz tespiti.
Hata düzeltmeleri¶
Görüntüleme:
İntegral görüntü hesaplaması,
median()filtresi bozulması, ağırlık merkezi hesaplaması, RGB girişinde RGB ten / siyah-beyaz filtreleri düzeltildi ve daha hızlı gri tonlamalı BMP/PPM okuma/yazma sağlandı.
Sensör ve sistem:
pyb.Servozamanlayıcıları (Servo artık çalışıyor), HQVGA çözünürlüğü, SD kart başlatma güvenilirliği, yazılımsal sıfırlamadan sonra depolamanın yeniden başlatılması ve bir betik bulunmadığında REPL’in yeniden çalıştırılması düzeltildi.
Donanım ve kart desteği¶
OV7725 kamera sensörü.
LCD shield (
lcdmodülü),mlxtermal kamera ve ATWINC1500 WiFi temel altyapısı.
Bozucu API değişiklikleri¶
v1.1.0 ile v1.2.0 arasındaki kullanıcıya görünür API değişiklikleri. Kapsam: modules/ içindeki Python C modülleri ve scripts/libraries/ içindeki Python kitaplıkları.
Üç bozucu değişikliğin tümü, temel sensor işlevlerinde davranış değişikliğidir (aynı API, farklı davranış) — etkilenen betikleri yeniden kontrol edin. Her commit hash’i GitHub’daki diff’ine bağlanır. (Bu sürümün büyük çoğunluğu v1.1→v1.2 aralığında oluşturulan yeni API’dir ve bu nedenle bozucu değil eklemelidir.)
sensor.reset() artık varsayılan bir yapılandırma uygulamıyor (davranış)¶
sensor.reset() artık yerleşik bir varsayılan yapılandırma (pixformat / framesize / framerate / kazanç / kontrast / parlaklık / doygunluk) uygulamıyor. reset() çağrısının kullanılabilir bir varsayılan bırakmasına güvenen betikler artık reset() sonrasında açıkça sensor.set_pixformat() ve sensor.set_framesize() (ve diğer ayarları) çağırmalıdır.
Commit’ler: d1e782df3
sensor.snapshot() zaman aşımında hata fırlatıyor (davranış)¶
sensor.snapshot() artık sensör zaman aşımına uğradığında süresiz olarak askıda kalmak yerine RuntimeError("Sensor Timeout!!") fırlatıyor. Zaman aşımlarını tolere etmeniz gerekiyorsa snapshot() çağrısını try / except RuntimeError ile sarmalayın.
Commit’ler: e3f41d674
sensor.set_pixformat() desteklenmeyen formatta hata fırlatıyor (davranış)¶
sensor.set_pixformat() artık desteklenmeyen bir piksel formatı verildiğinde False döndürmek yerine bir istisna fırlatıyor. False dönüş değerini kontrol eden kodun bunun yerine istisnayı yakalaması gerekir.
Commit’ler: e0c5822c2
Geçiş kontrol listesi¶
v1.2.0’a temiz bir geçiş için tipik iş şudur:
sensor.reset()sonrasındasensor.set_pixformat()/sensor.set_framesize()değerlerini açıkça ayarlayın (reset değişikliği).Sensör zaman aşımlarını tolere etmeniz gerekiyorsa
sensor.snapshot()çağrısınıtry/except RuntimeErrorile sarmalayın (snapshot değişikliği).Falsedeğerini kontrol etmek yerinesensor.set_pixformat()işlevinden gelen istisnayı yakalayın (set_pixformat değişikliği).
Diğer tüm betikler değişmeden çalışır.