v1.4.0¶
v1.4.0 היא ארגון מחדש יסודי של imlib. find_blobs() / find_markers() נכתבו מחדש למעקב ישיר לפי סף צבע, שיטות תמונה עצמאיות רבות קופלו לתוך טאפלים של רכיבים (blobs), ומספר שיטות תמונה שונו שמן (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()במקום ומילת מפתח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), והוחל תיקון HAL I2C/DMA של MicroPython מהמקור.
תמיכה בחומרה ובלוחות¶
מגן 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() הוסרו. נתוני המרכז (centroid) / האוריינטציה / ספירת הפיקסלים זמינים כעת כשדות של טאפלי הרכיבים המוחזרים על ידי 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).קראו נתוני מרכז (centroid) / אוריינטציה / פיקסלים מטאפלי הרכיבים במקום מהשיטות העצמאיות שהוסרו (שיטות התמונה שהוסרו).
שנו את השמות
subimg→copy,blit→replace, תקנו קריאותblend(), והחליפו אתscale/scaled/rainbow(שינויי השמות של imlib).שנו את השם
find_eyes()→find_eye()(שינוי השם של find_eye) ו-compress()→compressed()(שינוי השם של compress).
כל שאר הסקריפטים רצים ללא שינוי.