בני אדם יכולים להבחין בכ-10 מיליון צבעים. כדי לתפוס אותם, אתה צריך משהו המכונה פלטת צבעים. פלטת צבעים מכילה את הכלים להצגת כל מגוון הצבעים הנראים לעין האנושית. בעולם האמיתי, אתה משתמש בהם כדי ליצור עיצובים אסתטיים על נייר בעוד דיגיטלית אתה משתמש בהם כדי להוסיף צבע לאלמנטים במסך.
בסופו של דבר, המחשב שלך מקודד את כל הגוונים השונים שאתה רואה על המסך שלך באמצעות פורמט מסוים. עם Python, אתה יכול לפתח פלטת צבעים מקודדת RGB בכמה שורות קוד בלבד הודות למודול OpenCV ו-NumPy.
מודול OpenCV ו-NumPy
אתה יכול לנתח תמונות וסרטונים באמצעות OpenCV. זה בחינם, קוד פתוח, פשוט לשימוש ועמוס בספריות מועילות. אלה מספקים טכניקות לסיווג, איתור ומעקב אחר אובייקטים בשני מימדים ובתלת מימד. כדי להתקין את OpenCV בסביבה שלך, פתח מסוף והפעל:
pip להתקין opencv-python
מודול NumPy הוא עוד ספרייה פופולרית שתראה הרבה תוכניות Python משתמשות בהן. NumPy — פייתון מספרי — הוא מודול שאתה יכול להשתמש בו לניתוח נתונים ומחשוב מדעי. הוא מספק גם אובייקטים של מערך N-ממדי
פעולות מתמטיות שמסייעים במניפולציה של המערכים הללו.כדי להתקין את NumPy בסביבה שלך, בצע:
pip להתקין numpy
בדרך כלל, תשתמש ב-OpenCV כדי לעבד תמונות באמצעות טכניקות כמו זיהוי קצוות. לאחר מכן תוכל להשתמש ב-NumPy כדי לבצע ניתוח נתונים על התמונה המעובדת. באמצעות השילוב הזה אתה יכול ליצור ולפענח קוד QR, לסווג תמונות, לבצע זיהוי תווים אופטי ולבנות מערכות מעקב וידאו שיכולות לזהות תנועה ולעקוב אחר אנשים בזמן אמת.
כיצד לבנות פלטת צבעים באמצעות Python
בצע את השלבים הבאים כדי לבנות לוח צבעים באמצעות מודול OpenCV ו-NumPy ב-Python.
אתה יכול למצוא את המקור של לוח הצבעים באמצעות Python בזה GitHub מאגר.
התחל בייבוא המודולים OpenCV ו-NumPy. הגדר פונקציה בשם emptyfunction() שמכיל את הצהרת המעבר. הצהרת המעבר פועלת כמציין מיקום לקוד שתוכל לכתוב בעתיד. זה שימושי במיוחד עם פונקציות כמו createTrackbar, שבהן תשתמשו מאוחר יותר. זה דורש פונקציית התקשרות חוזרת חוקית ואתה יכול להעביר את emptyFunction כמציין מיקום לעת עתה.
יְבוּא cv2
יְבוּא רדום כפי ש np
defemptyFunction():
לַעֲבוֹר
צור מערך תלת מימדי בגודל 512 * 512 * 3 עם סוג נתונים של uint8 באמצעות NumPy's אֶפֶס() פוּנקצִיָה. כל מערך יכלול 512 עמודות ו-512 שורות. uint8 מייצג מספר שלם ללא סימן, כך שהתוכנית ממלאת את המערך באפסים.
image = np.zeros((512, 512, 3), np.uint8)
הגדר את שם החלון שהתוכנית תציג והעביר אותו ל- namedWindow() פונקציה ליצירת חלון:
windowName = "לוח הצבעים OpenCV"
cv2.namedWindow (windowName)
לאחר מכן, צור שלושה פסי מסלול עבור רכיבי הצבע האדום, הירוק והכחול. אתה יכול לעשות זאת באמצעות OpenCV's createTrackbar() פוּנקצִיָה. ראשית, העבר את התווית כאדום, כחול או ירוק. שנית, אתה צריך להעביר את שם החלון שבו אתה רוצה למקם את הסורגים האלה לדוגמה, windowName.
הפרמטר השלישי הוא הגבול המינימלי של סרגל המסלול, 0 במקרה זה. הפרמטר הרביעי מציין את הערך המקסימלי, שהוא 255 עבור ערך צבע של 24 סיביות. הפרמטר החמישי והאחרון הוא פונקציית התקשרות חוזרת אשר ליצירת סרגל מעקב נדרשת פונקציה חוקית עבורה. זו הסיבה שיצרת את emptyFunction קודם לכן, כדי לפעול כמציין מיקום.
cv2.createTrackbar('כְּחוֹל', שם חלון, 0, 255, פונקציה ריקה)
cv2.createTrackbar('ירוק', שם חלון, 0, 255, פונקציה ריקה)
cv2.createTrackbar('אָדוֹם', שם חלון, 0, 255, פונקציה ריקה)
הכריזו על לולאת תוך אינסופית והעבירו את שם החלון יחד עם התמונה שברצונכם להציג ל-OpenCV's imshow() פוּנקצִיָה. מכיוון שהתמונה מכילה מערך תלת מימדי של אפסים, התוכנית מציגה מסך שחור בתחילה.
בדוק אם המשתמש לחץ על מקש ה-escape על ידי בדיקת הערך מ waitkey() נגד 27 (קוד ה-ASCII עבור מפתח ה-Escape). הפונקציה waitkey() מציגה את החלון עבור המספר הנתון של אלפיות השנייה או עד שתלחץ על מקש. על ידי העברת אחד כקלט, הוא מציג את החלון למשך אלפית שנייה אך מתחדש עקב לולאת ה-while האינסופית.
כדי לקבל את המיקום הנוכחי של סרגל המסלול, העבר את שם סרגל המסלול יחד עם שם החלון אל getTrackbarPos(). חזור על שלב זה עבור שלושת מרכיבי הצבע הנפרדים, כחול, ירוק ואדום. השתמש באופרטור הפרוסות כדי להקצות את שלושת הערכים למערך התמונות. זה יחליף את קבוצת הערכים הקודמת, בתחילה כולם אפסים, בערכים הנוכחיים בהתאם למיקומי סרגל המסלול.
בזמן (נָכוֹן):
cv2.imshow (windowName, image)אם cv2.waitKey(1) == 27:
לשבור
blue = cv2.getTrackbarPos('כְּחוֹל', windowName)
green = cv2.getTrackbarPos('ירוק', windowName)
red = cv2.getTrackbarPos('אָדוֹם', windowName)
תמונה[:] = [כחול, ירוק, אדום]
הדפס (כחול, ירוק, אדום)
ברגע שהמשתמש לוחץ על מקש Escape, השתמש destroyAllWindows() כדי לסגור את החלונות שהתוכנית פתחה:
cv2.destroyAllWindows()
לבסוף, חבר את הכל יחד והפעל אותו כדי לשלוט ולהציג את פלטת הצבעים שלך.
הפלט של תוכנית לוח הצבעים של Python
בהפעלת התוכנית לעיל, מופיע חלון המכיל שלושה פסי מסלול עבור הצבעים כחול, ירוק ואדום. פסי המסלול נעים מטווח של 0 ל-255. כאשר אתה משנה את הערכים של הפסים השונים, אתה אמור לראות גוונים שונים של צבעים בסעיף למטה.
בדוגמה הראשונה הזו, אתה יכול לראות את ההגדרה של הפס הכחול כ-0, ירוק כ-69, ואדום כ-255. צבע הפלט המתקבל הוא גוון של כתום/אדום. בנוסף, חלון המסוף מציג את ערכי הצבע כ-0 69 255.
באופן דומה, כאשר תגדיר את הפס הכחול כ-130, ירוק כ-0, ואדום כ-75, תקבל צבע אינדיגו.
היישומים השונים של OpenCV
OpenCV מציע פונקציות חשובות עבור משימות כמו עיבוד תמונה, זיהוי אובייקטים, זיהוי פנים ומעקב. באמצעות OpenCV אתה יכול לייצר יישומי ראייה ממוחשבת בזמן אמת שיהוו ברכה בתחומים כמו רובוטיקה, אוטומציה תעשייתית, הדמיה רפואית ומערכות מעקב.
עתיד הראייה הממוחשבת מבטיח. תוכל להשתמש בראייה ממוחשבת כדי לעזור לכבדי ראייה, להניב צמיחה טובה יותר בחקלאות, לשפר את הבטיחות בדרכים באמצעות מכוניות בנהיגה עצמית, ואפילו לנווט בכוכבי לכת אחרים, כמו מאדים.