آموزش پایتون
88 subscribers
281 photos
21 videos
81 files
178 links
ارتباط با ما:
@learnpythonicyBot

لینک گروه چت:
https://t.me/learnpythonicychat

لینک چنل ایتا:
https://eitaa.com/learnpythonicy
Download Telegram
Image Processing Using OpenCV & MATPLOTLIB In Python


کد فوق به پردازش تصاویر با استفاده از OpenCV و Matplotlib پرداخته است.

برای مشاهده کد کلیک کنید👩‍💻

پردازش تصویر با استفاده از OpenCV، خواندن یک تصویر، تبدیل آن به فرمت‌های مختلف و نمایش نتایج شامل تصویر اصلی، تصویر خاکستری، تصویر بلور شده و لبه‌ها.💫

کد شامل مراحل زیر می‌باشد:

1. خواندن تصویر: تصویر از مسیر مشخص‌شده خوانده می‌شود.
2. بررسی خطا: اگر تصویر نتواند خوانده شود، پیغام خطا چاپ می‌شود.
3. تبدیل به RGB: تصویر از فرمت BGR به RGB تبدیل می‌شود تا در Matplotlib به‌درستی نمایش یابد.
4. تبدیل به خاکستری: تصویر به صورت خاکستری تبدیل می‌شود.
5. اعمال فیلتر بلور: یک فیلتر بلور Gaussian به تصویر RGB اعمال می‌شود.
6. استخراج لبه‌ها: با استفاده از فیلتر Canny، لبه‌ها از تصویر خاکستری استخراج می‌شود.
7. نمایش تصاویر: در نهایت، چهار تصویر (اصل، خاکستری، بلور شده و لبه‌ها) در یک شکل به نمایش در می‌آید.


#cv2 | #numpy | #matplotlib | #opencv | LearnPython

#بدانیم | #پردازش_تصویر | آموزش پایتون
✔️ پردازش تصویر با OpenCV و Matplotlib در پایتون


🔍 مراحل پردازش:
1️⃣ خواندن تصویر از مسیر مشخص
2️⃣ تبدیل رنگ BGR به RGB برای نمایش صحیح
3️⃣ تبدیل به تصویر خاکستری
4️⃣ اعمال فیلتر گوسی برای بلور کردن
5️⃣ استخراج لبه‌ها با الگوریتم Canny
6️⃣ نمایش تمام مراحل در یک پنجره

کاربردها:
- بینایی ماشین
- پردازش تصاویر پزشکی
- سیستم‌های تشخیص چهره

#cv2 | #numpy | #matplotlib | #opencv | @learnpythonicy

#بدانیم | #پردازش_تصویر | آموزش پایتون
✔️ تشخیص اشیا در زمان واقعی با YOLOv8 و OpenCV

ویژگی‌های کلیدی
- پیشرفته‌ترین مدل تشخیص اشیا (YOLOv8)
- پردازش زنده با وبکم
- دقت بالا در شناسایی 80 کلاس مختلف
- بهینه‌سازی شده برای اجرا روی CPU/GPU

کاربردهای انقلابی
- سیستم‌های نظارت هوشمند
- رباتیک و خودروهای خودران
- تحلیل تصاویر ماهواره‌ای

نصب:
pip install ultralytics opencv-python


🎬 پیشنهاد محتوای ویدیویی:
- نمایش عملکرد زنده روی اشیا مختلف
- مقایسه دقت YOLOv8 با نسخه‌های قبلی
- آموزش تنظیم پارامترها برای سناریوهای خاص

#ultralytics | #cv2 | @learnpythonicy
🎭 تشخیص احساسات چهره با نمایش همزمان تصویر و نتایج

import deepface as DeepFace
import cv2
import matplotlib.pyplot as plt
import numpy as np

# شروع دوربین
cap = cv2.VideoCapture(0)

while True:
ret, frame = cap.read()
if not ret:
break

try:
# تحلیل احساسات
results = DeepFace.analyze(frame, actions=['emotion'], enforce_detection=False)
emotion = results[0]['dominant_emotion']
emotions = results[0]['emotion']

# رسم نمودار احساسات
plt.clf() # پاک کردن نمودار قبلی
plt.bar(emotions.keys(), emotions.values(), color='skyblue')
plt.title(f'Dominant Emotion: {emotion}')
plt.ylim(0, 100)

# تبدیل نمودار به تصویر OpenCV
fig = plt.gcf()
fig.canvas.draw()
plot_img = np.array(fig.canvas.renderer.buffer_rgba())
plot_img = cv2.cvtColor(plot_img, cv2.COLOR_RGBA2BGR)

# نمایش ترکیبی
combined = np.vstack((
cv2.resize(frame, (640, 360)),
cv2.resize(plot_img, (640, 360))
))

cv2.imshow('Face Analysis - Live', combined)

except Exception as e:
print(f"خطا: {e}")
cv2.imshow('Face Analysis - Live', frame)

if cv2.waitKey(1) == ord('q'):
break

cap.release()
cv2.destroyAllWindows()


✔️ ویژگی‌های منحصر به فرد

- نمایش زنده تصویر دوربین + نمودار احساسات در یک پنجره
- آپدیت لحظه‌ای نمودار با تغییر حالات چهره
- بهینه‌سازی عملکرد با enforce_detection=False برای جلوگیری از خطا

🛠 راه‌اندازی آسان

1. نصب کتابخانه‌ها:
pip install deepface opencv-python matplotlib numpy


2. اجرای کد:
python face_emotion.py


#deepface | #cv2 | #matplotlib | #numpy | @learnpythonicy

> *برای دقت بیشتر می‌توانید مدل‌های سفارشی مانند VGG-FER را بارگذاری کنید:*
> DeepFace.build_model("VGG-Fer")
✔️ توضیح کد پردازش تصویر با OpenCV:

این کد سه عملیات اصلی روی تصاویر انجام می‌دهد:

1. خواندن تصویر از فایل:

   image = cv2.imread('photo.jpg')  # بارگذاری تصویر از مسیر مشخص


2. تغییر اندازه تصویر به 300×300 پیکسل:

   resized = cv2.resize(image, (300, 300))  # تغییر ابعاد با حفظ نسبت


3. برش قسمتی از تصویر (مستطیل با مختصات مشخص):

   cropped = image[100:400, 200:500]  # ارتفاع: 100-400px، عرض: 200-500px


4. نمایش نتیجه در پنجره جدید:

   cv2.imshow('Result', resized)  # نمایش تصویر تغییرسایز شده
cv2.waitKey(0) # توقف برنامه تا فشار کلید توسط کاربر


🔅 نکات کاربردی:
- اگر تصویر بارگذاری نشود، image برابر None خواهد بود

- برای ذخیره تصویر پردازش شده از cv2.imwrite() استفاده کنید

- اعداد در برش تصویر به صورت [Y_start:Y_end, X_start:X_end] هستند

#cv2 | @learnpythonicy

> *این کد پایه‌ای برای پروژه‌های بینایی ماشین و ویرایش تصویر است!*
✔️ تولید نقاشی دیجیتال با پایتون (ترکیب OpenCV + تصادفی‌سازی)

ویژگی‌ها
1. تولید هنر دیجیتال کاملاً تصادفی
2. ترکیب رنگ‌های رندوم در هر اجرا
3. خروجی منحصر به فرد در هر بار اجرا
4. ذخیره خودکار اثر تولیدی

نحوه کار
- ساخت بوم سفید 500x500 پیکسلی
- رسم 50 دایره با رنگ و موقعیت تصادفی
- اضافه کردن امضای "Python Art"
- نمایش و ذخیره نتیجه

#cv2 | #numpy | @learnpythonicy

> *برای اثر پیچیده‌تر، می‌توانید خطوط/مثلث‌های رندوم هم اضافه کنید!*
4
✔️ سیستم تشخیص حرکت با OpenCV در پایتون

import cv2

# باز کردن دوربین
cap = cv2.VideoCapture(0)

# خواندن اولین فریم (برای مقایسه بعدی)
ret, frame1 = cap.read()
frame1 = cv2.flip(frame1, 1)
gray1 = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
gray1 = cv2.GaussianBlur(gray1, (21, 21), 0)

while True:
ret, frame2 = cap.read()
if not ret:
break

frame2 = cv2.flip(frame2, 1)
gray2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)
gray2 = cv2.GaussianBlur(gray2, (21, 21), 0)

# محاسبه تفاوت بین دو فریم
diff = cv2.absdiff(gray1, gray2)
thresh = cv2.threshold(diff, 25, 255, cv2.THRESH_BINARY)[1]
thresh = cv2.dilate(thresh, None, iterations=2)

# پیدا کردن کانتور حرکت‌ها
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

motion_detected = False
for contour in contours:
if cv2.contourArea(contour) < 1000:
continue
motion_detected = True
(x, y, w, h) = cv2.boundingRect(contour)
cv2.rectangle(frame2, (x, y), (x+w, y+h), (0, 255, 0), 2)

if motion_detected:
cv2.putText(frame2, "Motion Detected!", (10, 30), cv2.FONT_HERSHEY_SIMPLEX,
1, (0, 0, 255), 2)

cv2.imshow("Motion Detector", frame2)

# بروزرسانی فریم مرجع
gray1 = gray2

if cv2.waitKey(1) == ord('q'):
break

cap.release()
cv2.destroyAllWindows()


▪️ ویژگی‌های پروژه
- تشخیص حرکت در زمان واقعی
- فیلتر نویز با گوسی‌بلور
- مستطیل سبز حول ناحیه متحرک
- هشدار متنی هنگام تشخیص حرکت

▪️ کاربردها
1. سیستم‌های امنیتی
2. نظارت بر حیوانات خانگی
3. شمارش افراد
4. تعامل حرکتی با کامپیوتر

▪️ ایده توسعه
- اضافه کردن ذخیره خودکار ویدئو هنگام حرکت
- ارسال نوتیفیکیشن از طریق تلگرام
- حساسیت قابل تنظیم با اسلایدر

#cv2 | @learnpythonicy
🔍 راهنمای #هشتگ‌ها برای دسترسی سریع‌تر به مطالب کانال

برای اینکه راحت‌تر به مطالب دلخواهتون برسید، از هشتگ‌های زیر استفاده کنید:

---

### 😂 #طنز

مطالب فان و خنده‌دار برای فاصله گرفتن از دنیای کدنویسی.

### 🧪 #تست_تایم

تست‌ها و تمرین‌هایی که باید برای تقویت مهارت‌های برنامه‌نویسی بزنید.

### 📘 #بدانیم

نکات مهم و کاربردی درباره‌ی برنامه‌نویسی و پایتون.

### 📚 #بخوانیم

دانستنی‌ها و مقالاتی که پیشنهاد می‌کنم حتما مطالعه کنید.

### 📖 #معرفی_کتاب / #بوک_تایم

کتاب‌های پیشنهادی برای یادگیری اصولی‌تر.

### 🔥 #موتیو_تایم

پست‌های انگیزشی و انرژی‌بخش برای ادامه‌ی مسیر یادگیری.

### 📚 #کتابخانه

کتابخانه‌هایی که در کانال معرفی شده‌اند.

### 📃 #برگه_تقلب و #Cheat_Sheet

خلاصه و نکات کلیدی
---
### 🎮 #game

بازی های ساخته شده با پایتون

### 🛣 #roadmap

نقشه‌راه یادگیری پایتون و مهارت‌های لازم.

### 🧩 #project_time

پروژه‌های تمرینی برای افزایش تجربه و تسلط.

### 📄 #paper

مقالات علمی و تخصصی معرفی‌شده.

---

### ⚡️ #PythonTricks

میانبرها و ترفندهای کاربردی پایتون.

### #Pythonmagic

رفتارهای خاص و جالب پایتون که کمتر کسی می‌داند.

### 🧰 #functools

ابزارها و تکنیک‌های مرتبط با توابع.

### 🧱 #codeBites

خلاصه‌ی یک دستور همراه با نمونه‌کد کوتاه.

### ❗️ #error

خطاهای رایج پایتون و روش رفع آن‌ها.

### 📰 #news

اخبار روز پایتون و دنیای تکنولوژی.

### 🖼 #carousel

پست‌های اسلایدری برای آموزش موضوعات مختلف.

---

### 🤖 #AI

هوش مصنوعی

### 📊 #ML

یادگیری ماشین

### 🧠 #DL

یادگیری عمیق (ژرف)

---

## 🔎 جستجوی سریع دستورات و کتابخانه‌ها

هر دستور یا کتابخانه‌ای که لازم دارید کافیست هشتگش را جستجو کنید:

#split
#while
#class
#for
#dict
#list
#opencv
#cv2
#numpy
#matplotlib
#tkinter
و …

---

## 🎯 دوره‌ها و تمرین‌ها

📘 دوره آموزش مقدماتی پایتون

🧪 حل ۳۰ سؤال کاربردی برای تقویت مهارت‌های دوره مقدماتی

🎖چالش ۳۰ روزه Python for AI
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ شناسایی و اندازه‌گیری خودکار دانه‌های برنج با OpenCV

در این آموزش یاد می‌گیری چطور:


✔️ بخش‌های سفید تصویر را استخراج کنی
✔️ نویز پس‌زمینه را حذف کنی
✔️ دانه‌های واقعی را فیلتر کنی
✔️ اندازه دقیق هر دانه را روی تصویر بنویسی

این یک مثال عالی برای پروژه‌های Machine Vision است.

کد کامل را میخوای؟؟
کلمه برنج را کامنت کن 👇

#opencv | #cv2 | #numpy

🌟@LearnPythonIcy
🤓2
This media is not supported in your browser
VIEW IN TELEGRAM
🎯 پیدا کردن دانه برنج با اندازه دلخواه

سیستم هوشمند ما
1️⃣ شناسایی تمام دانه‌های برنج در تصویر
2️⃣ دریافت عدد ورودی از کاربر
3️⃣ پیدا کردن دانه‌ای که مساحتش به عدد شما نزدیک‌تر است
4️⃣ مشخص کردن دانه انتخابی با کادر و نمایش اندازه دقیق

ویژگی‌ها
تشخیص خودکار دانه‌ها
جستجوی هوشمند نزدیک‌ترین اندازه
حذف نویز و ذرات ریز
نمایش واضح دانه انتخابی

📊 کاربرد
کنترل کیفیت، جداسازی دانه‌های خارج از سایز، پروژه‌های دانشگاهی، سیستم‌های درجه‌بندی کشاورزی


#opencv | #cv2 | #numpy

🌟@LearnPythonIcy