שְׁאֵלָה:
כיצד אוכל להשתמש במצלמת ה- SLR שלי כדי למדוד את 'הירקרקות' של תמונה?
David LeBauer
2011-03-17 08:38:33 UTC
view on stackexchange narkive permalink

רקע

את התמונות הדיגיטליות שלי ניתן לקרוא לתוכנת מחשב כמו Matlab או R כמטריקס amxnx 3 כאשר mxn הוא מספר הפיקסלים שנצפו על ידי כל אחד מהשלושה (אדום, ירוק וכחול) חיישנים, ולכל תא במטריצה ​​יש מספר מ- 1-255 המשקף את הבהירות הנצפית על ידי החיישן.

ברצוני להשתמש במידע זה בכדי להשיג מידה אובייקטיבית של ירוקות בתצלום, מכיוון אני רוצה לנסות לתאם את הירקרקות לגידול הצמחים (דמיין תמונה אחת ביום של שדה תירס).

עבודה קודמת בכיוון זה זכתה להצלחה מסוימת בחישוב מדד של ירוק כ

  • ירוק% = ירוק / (כחול + אדום) או
  • סטייה ירוקה = 2 * ירוק - אדום - כחול

מתמונות מצלמת רשת עבור כל אחד מהפיקסלים mxn, אך לא הייתה שליטה על הצמצם או קרינת האירוע (זווית השמש).

שימו לב שאני לא מחפש מדד 'מוחלט' של ירוקות, קנה המידה והפצה של המספר לא עניין - זה רק צריך לספק מידה יחסית עקבית של ירוקות.

שאלה

האם אוכל להשתמש ב- SLR שלי כדי לקבל מידה חזקה של ירוקות שאינה משתנה עם כל או כל הבאים:

  • כיסוי ענן?
  • שעה ביום?
  • יום בשנה? (זו הדרישה היחידה)
  • שיעור השמיים / הקרקע ברקע?

המצב הנוכחי

הבאתי את הדברים הבאים רעיונות, אבל אני לא בטוח מה יהיה צורך, או לאילו מהם לא תהיה שום השפעה על היחס בין ירוק / (אדום + כחול)

  1. לצלם פלסטיק לבן, השתמש בתמונה זו כדי לנרמל את הערכים האחרים
  2. תקן צמצם
  3. תקן מהירות תריס
  4. הגדר את איזון הלבן באמצעות פיסת נייר לבנה
  5. צלם את כל התמונות מאותה זווית
  6. צלם את כל התמונות בצהרי השמש
אתה יכול לשקול תאורה מלאכותית, זה יהפוך את ההליך לפשוט יותר. פלאש צריך לעשות כראוי, רק וודא שהוא נמצא באותו מיקום, וכוח.
@Pearsonarphoto - רעיון מעניין, חשבתי לצלם את התמונות ביום, אבל אולי יותר הגיוני לעשות אותם בלילה ללא ירח.
אם אתה ממלא אחר עצת Pearsonartphoto, תרצה להגדיר את התריס, הצמצם וה- ISO שלך באופן ידני - הגדר את התריס למהירות הסינכרון של הפלאש (בדרך כלל 1/200 ל- 1/320), והגדר את הצמצם וה- ISO שלך נמוך כפי שהם יכולים ללכת מבלי שנגמר כוח הבזק. זה יהפוך את הסביבה שלך לכהה ככל האפשר - ירח מלא לא אמור להיות בעיה (לעומת זאת שמש באמצע היום ...) למצב זה, פלאש על הציר יהיה הכי טוב, מכיוון שהוא יטיל מעט צללים .
@Evan אני לא מסכים לגבי פלאש על הציר. הסיבה לכך היא: http://photo.stackexchange.com/questions/9531/what-are-the-best-practices-for-taking-pictures-of-a-canvas/9551#9551— יותר מדי שיקוף ישיר. אלא כשמשתמשים במקטבים, כפי שתיארתי שם - אבל אז צריך לוודא שהציוד נשאר זהה ושהאיזון הלבן נעשה כהלכה. מקטבים משנים את האיזון הלבן.
אני מאמין שהערכים בתאי המטריצה ​​נעים בין 0 ל -255, ולא מ -1.
האם ניתן לכלול כרטיס אפור * ב * הזריקה במקום קבוע?
@mattdm כן, כרטיס אפור יכול להיכלל בכל זריקה. האם זה יעבוד טוב יותר מכרטיס לבן?
@Simon השתקפויות הן דאגה נכונה, אך הדוגמה שנתת היא התרחיש הגרוע ביותר: אובייקט שטוח הצביע ישירות על המצלמה. [הנה צמח בית שצילמתי, מואר מהציר ומחוץ לציר.] (Https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-snc6/199581_10150106008821680_570336679_6785729_7531541_n.jpg)
@David כרטיס אפור ישמש שתי מטרות: איזון צבעים וכוונון עדין של חשיפה. כרטיס לבן עדיין ייראה לבן אם תחשוף יתר על המידה את הזריקה.
כלורופיל הוא הבהיר ביותר באינפרא אדום הקרוב: http://www.yale.edu/ceo/Documentation/rsvegfaq.html ישנם מדדים סטנדרטיים של "ירוקות" של צמחים המבוססים על כך, כגון NDVI. לפיכך, אם אתה יכול, השג מצלמה שתוכל להקליט את להקת ה- NIR.
@whuber זו נקודה טובה, אבל מצלמות עם חיישן NIR הן >> 5,000 דולר. יש לי גישה למצלמה כזו ויכולה להשתמש בה לצורך אימות. עם זאת, אם ניתן היה לבצע את השיטה בזול ובמקומות רבים, מערכי נתונים גדולים יותר יהיו אינפורמטיביים יותר מאשר מדידות מדויקות יותר. חשבתי להשתמש בעובדה שחיישני CCD רגישים באזור זה - זה ידרוש הסרת מסנן החיתוך IR שנמצא מול החיישן, ואז צילום שתי תמונות, אחת עם חיתוך IR ואחת עם מסנן IR לעבור. .
@Simon לא הייתה לי גישה לשדה תירס, צילמתי את [שתי התמונות האלה] (http://i.imgur.com/0PHWY.jpg) של צמח הבית שלי. בוהק הוא כמעט לא כמו בעיה כמו שאתה יכול לחשוב. אמנם אני חושב שהתמונה מימין מושכת יותר, אך מחצית מהצמח מוסתר בצל.
@Evan Krall אני מסכים - משהו שלא חשבתי עליו הוא שצמחים בדרך כלל אינם שטוחים כשמשטחם פונה למצלמה. לכן, המדידה צריכה להיות חזקה רק כנגד צל / בוהק :) שום דרך לעקוף את זה, כפי שזה נראה.
שְׁלוֹשָׁה תשובות:
jrista
2011-03-17 10:26:23 UTC
view on stackexchange narkive permalink

אם אתה יכול לעבד את קבצי RAW, יהיה לך מערך פיקסלים של bayer המורכב משורות RGRGRG ו- GBGBGB (או אולי שורות RGBGRGBG.) אתה יכול להתעלם מכל הפיקסלים R ו- B, לסכם את הפיקסלים G, לקחת את שורש ריבועי (מכיוון שיש פי שניים פיקסלים ירוקים מכפי שיש אדום או כחול), וחלקו במחצית ממספר הפיקסלים G. זה אמור לתת לך את הממוצע המשוקלל המתאים ל"ירוק "בתצלום שלך. לאחר מכן תוכל לקחת את הממוצע של אדום וכחול ולחשב את האחוז הירוק שלך מכל שלושת הממוצעים.

כדי להיות מדויקים יותר, כדאי לך לשקול את השקלול הנכון לחיישן אדום, ירוק וכחול. פיקסלים, מכיוון שלחיישני CMOS יש רגישויות שונות לכל אורך גל של אור. המשקולות יהיו תלויות בדרך כלל בחיישן. זו תהיה הגישה הפשוטה.

כדי להסביר יציקת צבע בשל השעה ביום, סוגים שונים של תאורה מלאכותית וכו ', יתכן ונכון יותר לעבד מראש כל תמונה בכלי כמו Lightroom כדי לתקן. קודם איזון לבן, ואז בצע את החישוב שלך על תמונות פיקסל RGB רגילות. בניגוד לעיבוד נתוני חיישני RAW, תרצה לשקלל את החישוב שלך על סמך פיקסל "טוהר ירוק", במקום הממוצע של הרכיב הירוק. ככל שפיקסל ירוק יותר טהור, כך משקלו גבוה יותר לעומת פיקסלים שהם אדומים או כחולים יותר. נורמליזציה של איזון הלבן לפני העיבוד אמורה לבטל כל צורך לסבך חישוב פשוט למדי עם משיקים שנועדו לתת חשבון לעשרת גורמים כמו כיסוי ענן, שעה ביום, עונה וכו '.

אולי בכל זאת תרצה להתחשב שטחים גדולים של פיקסלים שאינם מתרחשים, כגון שמיים. אני לא באמת יכול לעזור לך הרבה בתחום הזה מבלי לדעת יותר מה בדיוק אתה מנסה להשיג. ירוקות של מסך "תצלום" תהיה ככל הנראה הטובה ביותר על ידי חישוב היחס בין ירוק לאדום וכחול, שיכלול פיקסלים של "שמיים".

באשר להליך שלך, מן הסתם מובן מאליו שאם אתה מצלם את אותן הגדרות מצלמה באותה נורה (אותה עוצמה וטמפרטורת צבע זהה), על פי קו בסיס משותף כמו כרטיס אפור של 18%, ברור שיעביר דרך ארוכה לקראת נורמליזציה של התוצאות שלך. בעזרת הדיגיטל, ניתן לתקן כל אי התאמות באמצעות תוכנת עיבוד RAW וכלי בסיסי לבחירת איזון לבן, לכן הקפד לצלם ב- RAW.


כדי לספק קצת יותר תובנות בחישוב "הירקרקות" של שלך תמונות. יש כמובן דרכים פשוטות, כמו חישוב משקלם של פיקסלים ירוקים לעומת כחול ואדום, או חישוב טוהר ירוק ביחס לטוהר אדום / כחול של פיקסלים RGB. יתכן שיהיה לך יותר מזל אם תמיר למרחב צבעים מתאים יותר, כגון HSV ( גוון / רוויה / ערך , המכונה לפעמים HSB, מחליף ערך בבהירות), ו חישב את הסכום הירוק שלך באמצעות עקומה במרחב HUE. (הערה: HSL הוא סוג אחר של מרחב צבעים, וכנראה שלא יהיה אידיאלי לחשב כמה "ירוק" בתמונה, אז הייתי משתמש ב- HSV. תוכלו ללמוד עוד על חללי צבע אלה כאן.) ירוק טהור (ללא קשר לרוויה או ערך) נופל בזווית גוון של 120 °, ונופל משם כשמתקדמים לכיוון אדום (ב -0 °) או לכיוון כחול (ב -240 °). בין 240 ° ל -360 ° תהיה כמות אפס של ירוק בפיקסל, ללא קשר לרוויה או לערך.

Hue Plot - Green Purity in Hue Degrees
איור 1. עלילת גוון - טוהר ירוק בגוון מעלות sup>

ניתן להתאים את עקומת הניפוח בפועל כדי לענות על הצרכים הספציפיים שלך, אולם עקומה פשוטה עשויה להיות דומה לזו הבאה:

טווח = 240 תקופה = טווח * 2 = 240 * 2 = 480 סולם = 360 / תקופה = 0.75 pureGreen = sin (סולם * 120)

הערך עבור pureGreen צריך להיות 1.0 . נוסחה למחשוב ירקרקות יכולה להיעשות כך באופן הבא:

  sin (scale * hue)} 0 > גוון > 240
ירוקות = 0} 240 < = גוון < = 360 || גוון == 0  

הגוון הוא מידת הצבע מערך הצבע HSV שלך. רדיוס הוא המחצית של תקופה שבה הירוק קיים במידה מסוימת. סולם מתאים את עקומת החטא לתקופה שלנו, כך ש- sin (scale * hue) מגיע לשיא (מחזיר 1.0) בדיוק במקום בו תהיה לך ירוק טהור (תוך התעלמות מעוצמת הירוקים) . מכיוון שכמות הירקרקות תקפה רק במחצית הראשונה של התקופה שלנו, חישוב הירקרקות תקף רק כאשר הגוון גדול מ- 0 ° ופחות מ -240 °, והאפס שלו לכל גוון אחר.

אתה יכול להתאים את הניפוח על ידי התאמת התקופה, הטווח שבו אתה מגדיר ירוק עשוי להיות קיים (כלומר במקום מ 0 ל 240, אתה יכול להגדיר אילוץ כמו 40 > גוון > 200 במקום זאת), והגדר כל דבר שמחוץ לטווח זה שיהיה לו ירקות 0. יש לציין כי זה יהיה מדויק מתמטית, אולם יתכן שהוא לא יהיה מדויק לחלוטין מבחינה תפיסתית. אתה יכול כמובן לשנות את הנוסחה כדי להתאים את נקודת ירוק טהור יותר לכיוון צהוב (מה שעשוי לייצר תוצאות מדויקות יותר מבחינה תפיסתית), להגדיל את משרעת העקומה למישור ולהרחיב את הלהקה של ירוק טהור ל טווח של גוון, ולא ערך של גוון יחיד וכו '. לדיוק תפיסתי אנושי מוחלט, אלגוריתם מורכב יותר שעובד ב- CIE XYZ ו- CIE L a b * ייתכן שיידרש מקום. (הערה: המורכבות של העבודה במרחב XYZ ובמעבדה עולה באופן דרמטי מעבר למה שתיארתי כאן.)

כדי לחשב את הירוקות של תמונה, אתה יכול לחשב את הירוקות של כל פיקסל, ואז לייצר מְמוּצָע. לאחר מכן תוכל לקחת את האלגוריתם משם ולעשות אותו לצרכים הספציפיים שלך.

תוכל למצוא אלגוריתמים להמרות צבע ב- EasyRGB, כמו זה של RGB ל- HSV:

  var_R = (R / 255) // אחוז האחוז אדום_G = (G / 255) // אחוז האחורי הירוק = (B / 255) // אחוז האחוז הכחול_מין = דקה (var_R, var_G, var_B) // מינימום ערך RGBvar_Max = מקסימום (var_R, var_G, var_B) // מקס. ערך RGBdel_Max = var_Max - var_Min // ערך RGB דלתא V = var_Max // ערך (או בהירות) אם (del_Max == 0) // זהו אפור, ללא כרומה ... {H = 0 // גוון (0 - 1.0 פירושו 0 ° - 360 °) S = 0 // רוויה} אחר // נתונים כרומטיים ... {S = del_Max / var_Max del_R = (((var_Max - var_R) / 6) + (del_Max / 2)) / del_Max del_G = (((var_Max - var_G) / 6) + (del_Max / 2)) / del_Max del_B = (((var_Max - var_B) / 6) + (del_Max / 2)) / del_Max אם (var_R == var_Max) H = del_B - del_G אחרת אם (var_G == var_Max) H = (1/3) + del_R - del_B אחרת אם (var_B == var_Max) H = (2/3) + del_G - del_R אם (H < 0) H + = 1 אם (H > 1) H - = 1}  
+1 לטכניקת העיבוד הגולמי. המקור ל- dcraw יהיה נקודת התחלה טובה http://www.cybercom.net/~dcoffin/dcraw/dcraw.c
עיבוד גולמי יקל על חישוב המפלס הירוק, אולם הוא יהפוך את ההתמודדות עם יציקת צבע למורכבת הרבה יותר.
Simon A. Eugster
2011-03-17 22:22:47 UTC
view on stackexchange narkive permalink

פרויקט GLOBE?

אל תשתמש בפיסת נייר לבנה. אלה מכילים חומרי הבהרה אופטיים הממירים מעט UV לאור כחול, וגורמים לחשיפה שגויה. זו הסיבה שקיימים כרטיסי אפור מסחריים (כפי שהציעה jrista).

צילום כל התמונות מאותו מקום הוא בהחלט הגישה הנכונה. לגבי מהירות תריס וצמצם, אלה לא צריכים להיות חשובים. מהירות התריס לא משנה צבע בכלל, צמצם מטשטש את התמונה, אבל אני חושב שהאפקט הזה נעלם בכל מקרה כשאתה מסכם את כל ערכי הפיקסלים. אני מעדיף לנסות להשיג חשיפה מתמדת.

לגבי ההבדל בין מעונן לא מעונן, ייתכן שתרצה להריץ כמה בדיקות. אם הכמות הירוקה האמיתית לא משתנה במהירות (כלומר מהיום למחר), אז היא לא צריכה לעשות זאת גם כאשר בוחנים את התמונות. אולי גישה אמפירית עשויה לעזור שם (למשל, אם תגלה כי הירקרקות תמיד גבוהה ב -10% כאשר היא מעוננת, תוכל לפצות על כך).

זה לא פרויקט GLOBE, אבל אפשר היה להפוך אותו לפרויקט; תודה שציינת את האתר ההוא.
אולי מעניין גם אתכם: כרגע אני כותב תוכנית לניתוח סרטונים, למשל. ממצלמות רשת, וסטטיסטיקה של תפוקה (נתח ירוק וכו '). צריך לסיים בשבועות הקרובים. http://phenocam.granjow.net/
זה נשמע שימושי. האם שיתפת פעולה עם מדענים כלשהם?
עדיין לא יותר מדי מכיוון ששיטות ההערכה יהיו החלק האחרון (וגם ניתן לשנות / להוסיף בקלות). אבל זה פרויקט של ETH ציריך וישמש אותו גם שם. (אם לדייק, בתחילה הוא ישמש את תלמידי התיכון לפרויקט הגלובוס שלהם).
fisheye
2011-05-01 21:00:25 UTC
view on stackexchange narkive permalink
  1. הייתי מציע לצלם 'RAW', ולהמיר ל TIFF של 16 סיביות באמצעות איזון הלבן האוטומטי של המצלמה אך ללא תיקון גאמא (כלומר פלט מאוזן אך פלט ליניארי). 16 סיביות יאפשר חישוב טוב יותר של יחסים ומדדים בצללים עמוקים ובהדגשים (כלומר ללא גזירה). DCRAW יכולה לעשות זאת, אך המצלמה שלך תגיע עם תוכנה משלה שכנראה קלה יותר לשימוש.

  2. אם אתה רוצה מדדים אז RGB הוא באמת שטח הצבעים השימושי היחיד. כבר הזכרת את מדד 'ההבדל הירוק' (נקרא גם מדד הירוק העודף) - זה והאלגוריתם הירוק של העלה הירוק עובד די טוב. אם ברצונך לבצע סיווג פיקסל מבוסס צבע (כלומר טבע לעומת לא טבעוני) אז הייתי מסתכל מקרוב על מרחב הצבעים L a b * ולא על HSV / HSI. יש למעשה הדגמה טובה למדי באתר Mathworks המדגימה ניתוח L a b *. אפשר לשלב סיווג עם ניתוח ספקטרלי כדי לענות על השאלות א) כמה פיקסלים ירוקים יש ו- b) כמה הם ירוקים? זה עשוי להיות שימושי יותר מאשר רק אינדקס ירקרק, אשר יושפע גם מאיכות הספקטרום ברקע (אדמה, פסולת וכו '), אשר עשויה להשתנות גם לאורך זמן. הזכרת יבול תירס אז אני מניח שאתה מכוון את המצלמה למטה, לא כלפי מעלה?

  3. אם היו לך שתי מצלמות היית יכול לשלב תמונות למראה כלפי מטה (מדידת ירוקות) עם תמונות למבט כלפי מעלה המודדות את כיסוי הצמחייה. תמונות כלפי מעלה לא יתאימו לניתוח ספקטרלי וסיווג הפיקסלים יתבסס על ניגודיות בין שמיים / לא שמיים, ככל הנראה רק באמצעות הערוץ הכחול של תמונת ה- RGB.

  4. אם אתה אוסף סדרת זמנים (יומית?), תוכל לחלק את התמונות כלפי מטה לתמונות 'יום מעונן' ותמונות 'יום שמש' ולבדוק אם יש הטיה. אתה יכול לשחק עם איזון צבעים במהלך עיבוד גולמי כדי לתקן את ההטיה, אם קיימת, או פשוט לשנות את המידה של סדרה אחת כך שתתאים לשנייה (שמור על הפשטות) בהנחה שימים שטופי שמש ומעוננים זה בזה.

  5. ol>

    תיהני.

אריח צבע עם אריחים אדומים, ירוקים וכחולים עשוי להיות טוב אפילו יותר מכרטיס אפור אם תלך בדרך זו.


שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 2.0 עליו הוא מופץ.
Loading...