נפתרה: שנה את גודל התמונה ופתח אותה למערך numpy opencv

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

מבוא

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

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

כדי להתחיל, עלינו לייבא את הספריות הדרושות לסביבת Python שלנו.

import cv2
import numpy as np
  • cv2: ספריית OpenCV המשמשת למשימות עיבוד תמונה.
  • numpy: ספריית NumPy מספקת תמיכה לעבודה יעילה עם מערכים ומטריצות.

טעינה ושינוי גודל התמונה

ראשית, עלינו לטעון את התמונה ולאחר מכן לשנות את גודלה באמצעות הפונקציה OpenCV cv2.resize():

# Load the image
image = cv2.imread('path/to/image.jpg')

# Define the new size (width, height)
new_size = (300, 300)

# Resize the image
resized_image = cv2.resize(image, new_size, interpolation=cv2.INTER_AREA)
  • cv2.imread(): פונקציה זו קוראת תמונה מנתיב הקובץ שצוין.
  • new_size: טאפל המכיל את הרוחב והגובה הרצויים של התמונה שגודלה שונה. במקרה זה, אנו רוצים לשנות את גודלו ל-300×300 פיקסלים.
  • cv2.resize(): זה משנה את גודל התמונה לממדים שצוינו באמצעות שיטת אינטרפולציה שצוינה.

התאמת התמונה שגודלה שונה למערך NumPy

לאחר שינוי גודל התמונה, עלינו להתאים אותה למערך NumPy:

# Create a NumPy array with the desired dimensions (width, height, channels)
array_shape = (300, 300, 3)

# Fit the resized image into the NumPy array
numpy_image = np.zeros(array_shape, dtype=np.uint8)
numpy_image[:resized_image.shape[0], :resized_image.shape[1]] = resized_image
  • array_shape: טופל המכיל את המידות הרצויות עבור מערך NumPy. זה חייב להיות בעל אותו רוחב, גובה ומספר ערוצים כמו התמונה שגודלה שונה.
  • np.zeros(): פונקציה זו יוצרת מערך NumPy ריק עם הממדים וסוג הנתונים שצוינו.
  • dtype: הוא מגדיר את סוג הנתונים של מערך NumPy. np.uint8 מייצג מספר שלם ללא סימן של 8 סיביות, המשמש בדרך כלל עבור נתוני תמונה.

לאחר השלמת שלבים אלה, גודל התמונה משתנה כעת ומתאים למערך NumPy, מוכן לעיבוד נוסף.

פונקציות וטכניקות נוספות של OpenCV

להלן כמה פונקציות וטכניקות נוספות של OpenCV הקשורות לשינוי גודל תמונות:

  • cv2.INTER_LINEAR: משמש לאינטרפולציה כברירת מחדל ב cv2.resize().
  • cv2.INTER_CUBIC: מספק שינוי גודל באיכות טובה יותר להגדלה. זה איטי יותר בהשוואה לשיטות אינטרפולציה אחרות.
  • cv2.INTER_NEAREST: השיטה המהירה ביותר לשינוי גודל. עם זאת, האיכות יורדת עקב היעדר אינטרפולציה.
  • שיקולי יחס גובה-רוחב: בעת שינוי גודל, שמירה על יחס הגובה-רוחב היא חיונית, אם לא, התמונה עלולה להתעוות.

לסיכום, הדגמנו כיצד לשנות גודל תמונה ולהתאים אותה למערך NumPy באמצעות OpenCV. על ידי ביצוע השלבים המתוארים, מפתחים יכולים לתפעל תמונות ביעילות עבור ראיית מחשב, למידת מכונה ויישומים אחרים.

הודעות קשורות:

השאירו תגובה