- بواسطة x32x01 ||
لو بتدور على مشروع عملي في Python يساعدك تفهم الرؤية الحاسوبية (Computer Vision) بشكل بسيط وممتع، فمشروع اكتشاف الألوان هو اختيار ممتاز 👌
المشروع بيعتمد على مكتبتين أساسيتين:
تختار صورة، ولما تضغط على أي نقطة فيها:
تضغط على لون أزرق → يظهر لك "Blue" أو "Dark Blue"
📌 تقدر توسّع الملف وتضيف مئات الألوان لنتائج أدق
لكن كمان هتفهم إزاي تربط بين البيانات والصور بشكل عملي 👌
ابدأ بالمثال البسيط ده… وطوّره بإيدك لحد ما يبقى مشروع احترافي 🚀
المشروع بيعتمد على مكتبتين أساسيتين:
- OpenCV لمعالجة الصور
- Pandas لتنظيم بيانات الألوان
فكرة مشروع Color Detection
الفكرة ببساطة 👇تختار صورة، ولما تضغط على أي نقطة فيها:
- البرنامج يقرأ قيمة اللون (RGB)
- يقارنها بقاعدة بيانات الألوان
- يطلع لك اسم اللون الأقرب
تضغط على لون أزرق → يظهر لك "Blue" أو "Dark Blue"
المتطلبات الأساسية لتشغيل المشروع
قبل ما تبدأ، تأكد إن عندك:- Python مثبت على جهازك
- المكتبات التالية:
Code:
pip install opencv-python pandas تجهيز ملف الألوان (Dataset)
هنحتاج ملف CSV فيه أسماء الألوان وقيم RGB.مثال على محتوى الملف:
Code:
color_name,R,G,B
Red,255,0,0
Green,0,255,0
Blue,0,0,255
Black,0,0,0
White,255,255,255 الكود الأساسي للمشروع
ده مثال بسيط يوضح الفكرة 👇 Python:
import cv2
import pandas as pd
# تحميل الصورة
img = cv2.imread('image.jpg')
# قراءة ملف الألوان
colors = pd.read_csv('colors.csv')
clicked = False
r = g = b = xpos = ypos = 0
# دالة تحديد اللون الأقرب
def get_color_name(R, G, B):
minimum = 10000
cname = ""
for i in range(len(colors)):
d = abs(R - int(colors.loc[i, "R"])) + \
abs(G - int(colors.loc[i, "G"])) + \
abs(B - int(colors.loc[i, "B"]))
if d <= minimum:
minimum = d
cname = colors.loc[i, "color_name"]
return cname
# حدث الضغط بالماوس
def draw_function(event, x, y, flags, param):
global b, g, r, xpos, ypos, clicked
if event == cv2.EVENT_LBUTTONDOWN:
clicked = True
xpos, ypos = x, y
b, g, r = img[y, x]
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_function)
while True:
cv2.imshow("image", img)
if clicked:
color_name = get_color_name(r, g, b)
print(f"Color: {color_name} - RGB({r},{g},{b})")
clicked = False
if cv2.waitKey(20) & 0xFF == 27:
break
cv2.destroyAllWindows() شرح سريع للكود
- OpenCV بيعرض الصورة ويتابع ضغط الماوس
- عند الضغط:
- بيحدد قيمة اللون (RGB)
- يقارنها بقاعدة البيانات
- يطبع اسم اللون
تحسينات ممكن تضيفها للمشروع
لو عايز تطور المشروع لمستوى أعلى 🚀- عرض اسم اللون داخل الصورة بدل الـ Console
- دعم الكاميرا (Live Detection)
- استخدام AI لتصنيف الألوان بدقة أعلى
- تحسين خوارزمية المقارنة (Euclidean Distance)
- إضافة واجهة GUI باستخدام Tkinter
استخدامات المشروع في الواقع
المشروع مش مجرد تجربة 👇- تطبيقات التصميم 🎨
- تحليل الصور
- أنظمة التعرف البصري
- مشاريع الذكاء الاصطناعي
نصائح لنجاح المشروع
- استخدم Dataset كبير للألوان
- اختبر على صور مختلفة
- راقب الأداء مع الصور الكبيرة
- نظّم الكود لسهولة التطوير
الخلاصة
مشروع اكتشاف الألوان باستخدام Python هو بداية قوية جدًا لأي حد داخل مجال:- Computer Vision
- Data Processing
- AI Basics
لكن كمان هتفهم إزاي تربط بين البيانات والصور بشكل عملي 👌
ابدأ بالمثال البسيط ده… وطوّره بإيدك لحد ما يبقى مشروع احترافي 🚀
التعديل الأخير: