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

שיפור תמונה הוא כלי חיוני עבור יישומי ראייה ממוחשבת ועריכת תמונות. מטרתו היא לשפר את איכות התמונות.

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

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

הגדרת הסביבה שלך

התחל ב הגדרת סביבת Python, ולאחר מכן הפעל את פקודת המסוף הבאה כדי להתקין את ספריית OpenCV. אתה תשתמש ב-OpenCV כדי לטעון ולעבד את התמונה הראשונית, וכדי לשמור את התמונה המשופרת הסופית.

pip להתקין opencv-python

תשתמש ב-Matplotlib כדי להציג את שתי התמונות. התקן אותו באמצעות הפקודה הזו:

pip להתקין matplotlib

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

pip להתקין numpy

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

קוד המקור המלא להדגמה זו זמין ב-a מאגר GitHub.

ייבוא ​​הספריות הדרושות

ייבא את הספריות שהתקנת בעבר בסביבה שלך:

יְבוּא cv2
יְבוּא matplotlib.pyplot כפי ש plt
יְבוּא רדום כפי ש np

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

טעינה והצגת התמונה המקורית

התחל בטעינת התמונה המקורית באמצעות ה cv2.imread פוּנקצִיָה. זוהי תמונת הקלט שעליה התוכנית שלך תבצע טכניקות שיפור. לאחר מכן הצג אותו באמצעות הפונקציות המתאימות של Matplotlib:

image = cv2.imread('example.jpg')
plt.imshow (cv2.cvtColor (תמונה, cv2.COLOR_BGR2RGB))
plt.title('תמונה מקורית')
plt.show()

הצגת התמונה המקורית תעזור לך להשוות את תוצאות התוכנית מאוחר יותר:

התמונה לעיל תהיה הקלט של התוכנית.

הפחתת רעש בתמונה

Denoising היא טכניקה שמטרתה להפחית רעש - עיוותים אקראיים - בתמונה. זה מביא לתפוקה חלקה יותר. OpenCV מספק את FastNlMeansDenoisingColored לתפקד למטרה זו. הוא משתמש באלגוריתם אמצעים לא מקומיים כדי להסיר רעש תוך שמירה על פרטי התמונה.

# החל שיפורי תמונה
# לטשטש את התמונה
denoised_image = cv2.fastNlMeansDenoisingColored (תמונה, אף אחד, 10, 10, 7, 21)

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

מתיחה ניגודיות כדי לשפר את נראות הפרטים

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

אתה יכול להחיל מתיחת ניגודיות על התמונה המעורפלת באמצעות OpenCV's לנרמל פוּנקצִיָה:

# בצע מתיחת ניגודיות
contrast_stretched_image = cv2.normalize (תמונה_מנוזה, אף אחד, 255, 0, cv2.NORM_MINMAX, cv2.CV_8UC1)

כיצד לחדד את התמונה

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

# חידוד תמונה
kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], np.float32)
sharpened_image = cv2.filter2D(contrast_stretched_image, -1, kernel=kernel)

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

התאם את הבהירות כדי לשפר את החשיפה

התאמת בהירות שולטת בבהירות הכוללת של תמונה. זה עוזר להפוך את התמונה למושכת ויזואלית וחשופה היטב.

# התאמת בהירות
brightness_image = cv2.convertScaleAbs (תמונה_מחודדת, אלפא=1, בטא=5)

ה cv2.convertScaleAbs הפונקציה מתאימה את בהירות התמונה. ה אלפא פרמטר שולט על הניגודיות, בעוד שה בטא פרמטר שולט בבהירות. הגדלת ה בטא ערך משפר את בהירות התמונה.

החל תיקון גמא כדי להאיר את התמונה

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

# תיקון גמא
גמא = 1.5
lookup_table = np.array([((i / 255.0) ** גמא) * 255ל אני ב np.arange(0, 256)]).astype("uint8")
gamma_corrected_image = cv2.LUT(brightness_image, lookup_table)

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

שמירה והצגה של התמונה המשופרת הסופית

לאחר שיישמת את טכניקות השיפור שלעיל, שמור את התמונה המעובדת הסופית בקובץ.

# שמור את התמונה הסופית
cv2.imwrite('final_image.jpg', תמונת_מתוקנת_גמא)

לאחר מכן הצג את הפלט של התוכנית באמצעות Matplotlib.

# הצג את התמונה המשופרת הסופית
plt.imshow (cv2.cvtColor (gamma_corrected_image, cv2.COLOR_BGR2RGB))
plt.title('תמונה משופרת סופית')
plt.show()

התמונה המשופרת הסופית היא כדלקמן:

העתיד של שיפור התמונה

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

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