eitaa logo
آموزش پایتون
63 دنبال‌کننده
244 عکس
106 ویدیو
52 فایل
ارتباط: https://eitaa.com/joinchat/956171922Cb501d5a32f لینک همین کانال: @LearnPythonIcy لینک کانال تلگرام: https://t.me/learnpythonicy
مشاهده در ایتا
دانلود
✔️ ۵ ترفند جادویی در پردازش تصویر با پایتون (OpenCV + PIL) پردازش تصویر یکی از جذاب‌ترین بخش‌های برنامه‌نویسی است. در اینجا تکنیک‌های کاربردی را با کتابخانه‌های محبوب پایتون بررسی می‌کنیم: 1️⃣چرخش تصویر با حاشیه‌های هوشمند import cv2 import numpy as np img = cv2.imread('image.jpg') assert img is not None, "تصویر یافت نشد!" # بررسی وجود فایل rows, cols = img.shape[:2] M = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1) rotated = cv2.warpAffine(img, M, (cols, rows), borderMode=cv2.BORDER_REFLECT) cv2.imwrite('rotated.jpg', rotated) بهینه‌سازی: - اضافه کردن
assert
برای بررسی وجود فایل. - ذخیره خودکار خروجی با
imwrite
. 2️⃣ فیلتر ترکیبی (Edge Detection + Blur) from PIL import Image, ImageFilter image = Image.open('image.jpg') edges = image.filter(ImageFilter.FIND_EDGES()) # تابع باید با حروف کوچک باشد: FIND_EDGES → FIND_EDGES blurred_edges = edges.filter(ImageFilter.GaussianBlur(radius=2)) blurred_edges.save('edges_blurred.jpg') 3️⃣ تغییر رنگ‌های خاص با HSV hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) lower_red = np.array([0, 100, 100]) upper_red = np.array([10, 255, 255]) mask = cv2.inRange(hsv, lower_red, upper_red) img[mask > 0] = [0, 255, 0] # تغییر رنگ قرمز به سبز cv2.imwrite('color_changed.jpg', img) نکته: - برای تشخیص بهتر قرمز، محدوده
[170, 100, 100]
تا
[180, 255, 255]
را نیز اضافه کنید. 4️⃣ تصحیح خودکار نور gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) equalized = cv2.equalizeHist(gray) cv2.imwrite('equalized_gray.jpg', equalized) # نسخه رنگی: yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV) yuv[:,:,0] = cv2.equalizeHist(yuv[:,:,0]) equalized_color = cv2.cvtColor(yuv, cv2.COLOR_YUV2BGR) cv2.imwrite('equalized_color.jpg', equalized_color) 5️⃣ تشخیص چهره + تار کردن پس‌زمینه face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) mask = np.zeros_like(img) for (x,y,w,h) in faces: mask[y:y+h, x:x+w] = img[y:y+h, x:x+w] # حفظ چهره blurred_bg = cv2.GaussianBlur(img, (25,25), 0) result = np.where(mask==0, blurred_bg, mask) # ترکیب با ماسک cv2.imwrite('blurred_bg.jpg', result) 📚 کتابخانه‌های پیشنهادی - OpenCV: برای پردازش حرفه‌ای تصویر. - Pillow: برای عملیات ساده‌تر. - scikit-image: برای الگوریتم‌های پیشرفته (مثل exposure.equalize_adapthist). - matplotlib: برای نمایش گرافیکی نتایج. | |@LearnPythonicy
✔️ پیدا کردن حروف منحصر به فرد در یک رشته برای پیدا کردن حروف منحصر به فرد (حذف کاراکترهای تکراری از متن) در یک رشته، معمولاً از حلقه‌ها و ساختارهای شرطی استفاده می‌کنیم: unique_chars = [] for char in my_string: if char not in unique_chars: unique_chars.append(char) اما پایتون یک روش حرفه‌ای و بهینه‌تر ارائه می‌دهد: unique_chars = list(set(my_string)) 👀 چرا این روش کار می‌کند؟ - تابع set() به طور خودکار تمام عناصر تکراری را حذف می‌کند. - با تبدیل نتیجه به لیست، خروجی مورد نظر ما را می‌دهد. نکته: اگر ترتیب حروف مهم است، می‌توانید از dict استفاده کنید: unique_ordered = list(dict.fromkeys(my_string)) این روش: 1. سریع‌تر و خوانا تر است 2. برای رشته‌های طولانی کارایی بهتری دارد 3. کد را حرفه‌ای‌تر نشان می‌دهد | | @LearnPythonIcy
آموزش پایتون
✔️ محاسبه سریع فیبوناچی با روش ماتریسی! برای محاسبه دنباله فیبوناچی معمولاً از روش بازگشتی استفاد
چرا این روش انقلابی است؟ 1. سرعت فوق‌العاده: محاسبه fib(1000) در 0.0001 ثانیه 2. حافظه بهینه: بدون استفاده از پشته بازگشتی 3. پشتیبانی از اعداد بسیار بزرگ نحوه کار: - از توان ماتریس ۲×۲ استفاده می‌کند - با تکنیک توان رسانی سریع محاسبه می‌شود مقایسه عملکرد: - fib(22) با روش بازگشتی: 0.05994 ثانیه - fib(22) با این روش: 0.00000 ثانیه
Packtpub_Mastering_OpenCV_with_Practical.pdf
حجم: 6.6M
📚 «Mastering OpenCV with Practical Computer Vision Projects» 📚 کتاب "تسلط بر OpenCV با پروژه‌های عملی بینایی کامپیوتر" ✅ آیا به دنبال یادگیری عمیق و کاربردی OpenCV و پیاده‌سازی پروژه‌های واقعی بینایی کامپیوتر هستید؟ ✅ این کتاب یک راهنمای جامع و پروژه‌محور برای توسعه‌دهندگانی است که می‌خواهند از کتابخانه OpenCV برای حل مسائل پیچیده بینایی ماشین استفاده کنند. ✅ خلاصه‌ای از کتاب این کتاب با رویکردی عملی و مبتنی بر پروژه، تکنیک‌های پیشرفته پردازش تصویر و بینایی کامپیوتر را آموزش می‌دهد. از مباحث پایه‌ای OpenCV تا پیاده‌سازی پروژه‌های واقعی مانند تشخیص چهره، ردیابی اشیا و پردازش ویدئو، همه در این کتاب پوشش داده شده‌اند. ✅ چرا این کتاب را بخوانیم؟ - مناسب برای توسعه‌دهندگان متوسط و پیشرفته - ارائه مثال‌های عملی و پروژه‌های کاربردی - مرجع عالی برای علاقه‌مندان به بینایی ماشین و پردازش تصویر | | آموزش پایتون | |
✔️ دستور
split()
در پایتون دستور
split()
یک متد برای رشته‌ها (strings) در پایتون است که یک رشته را به چند بخش تقسیم می‌کند و نتیجه را به صورت لیست برمی‌گرداند. کاربرد اصلی: python رشته.split(جداکننده, maxsplit) - جداکننده (sep): مشخص می‌کند بر اساس چه کاراکتری تقسیم انجام شود (پیش‌فرض: فاصله) - maxsplit: حداکثر تعداد تقسیم‌ها را مشخص می‌کند مثال‌های ساده: 1. تقسیم بر اساس فاصله (پیش‌فرض): python text = "Hello World Python" result = text.split() print(result) # خروجی: ['Hello', 'World', 'Python'] 2. تقسیم بر اساس کاراکتر خاص: python data = "apple,banana,orange" result = data.split(',') print(result) # خروجی: ['apple', 'banana', 'orange'] 3. محدود کردن تعداد تقسیم‌ها: python text = "one two three four" result = text.split(' ', 2) print(result) # خروجی: ['one', 'two', 'three four'] 4. تقسیم خطوط یک متن: python poem = "Line1\nLine2\nLine3" lines = poem.split('\n') print(lines) # خروجی: ['Line1', 'Line2', 'Line3'] این متد بسیار پرکاربرد است، مخصوصاً هنگام پردازش فایل‌های متنی یا داده‌های ساختاریافته مانند CSV.
✔️ خروجی‌ کد بالا کدام است؟ | آموزش پایتون پاسخ: گزینه B
9.7M حجم رسانه بالاست
مشاهده در ایتا
💥 راز یادگیری برنامه‌نویسی بدون سردرگمی! همیشه می‌پرسید "چطور برنامه‌نویس بشم؟" یا "از کجا شروع کنم؟" راه حلش تو این ویدئوعه! ✔️ سایت roadmap.sh مسیر یادگیری رو از پایه تا پیشرفته نشون میده... برای همه حوزه‌ها (فرانت، بک‌اند، دواپس، ...) راهنمای اختصاصی داره! توی ویدئو بهتون نشون میدم چطور ازش استفاده کنید! | @learnpythonicy
شما به ۳ بُرد روزانه نیاز دارید: 1⃣ برد فیزیکی پیاده‌روی، دویدن، وزنه‌برداری، شنا.. 2⃣ برد ذهنی خواندن، نوشتن، خلق کردن، یادگیری.. 3⃣ برد معنوی دعا کردن، مدیتیشن، مطالعه، رشد.. یک برنده کامل باشید! | آموزش پایتون
✔️ ایجاد سریع فایل‌ها و پوشه‌های موقت با tempfile به چیزی موقت برای گزارش‌ها، حافظه پنهان یا آزمایش‌ها نیاز دارید؟ به جای کدگذاری مسیرها و تمیز کردن دستی، از ماژول tempfile استفاده کنید - همه چیز را خودش ایجاد و حذف می‌کند. ماژول tempfile به شما امکان می‌دهد با خیال راحت با فایل‌ها و پوشه‌های موقت، به خصوص در آزمایش‌ها یا برای داده‌های میانی، کار کنید - بدون نگرانی در مورد تمیز کردن. | @learnpythonicy
🦆 اگر پرنده‌ای شبیه اردک راه برود و صدای اردک بدهد، پس آن یک اردک است! حالا این چه ربطی به پایتون دارد؟ 🤔 در پایتون، Duck Typing یک مفهوم جذاب است . ✔️ معنی Duck Typing در کدنویسی پایتون به نوع اشیا (Type) به صورت سخت‌گیرانه نگاه نمی‌کند، بلکه به رفتار (Behavior) آنها اهمیت می‌دهد. اگر یک شی متدها یا ویژگی‌های مورد نیاز شما را داشته باشد، پایتون اجازه می‌دهد با آن کار کنید، حتی اگر از کلاس خاصی نباشد. 🔅 کاربرد Duck Typing در پایتون 1. انعطاف‌پذیری بالا: نیازی به ارث‌بری یا رابط‌های رسمی نیست. 2. کد تمیزتر: بدون بررسی‌های نوع اضافی (
isinstance
). 3. مفید برای Mocking در تست‌ها: می‌توان اشیا ساده با متدهای مشابه ساخت. 4. استفاده در کتابخانه‌های استاندارد: مثل
len()
که روی هر شیء با متد
__len__()
کار می‌کند. 📌 خلاصه پایتون می‌گوید: "به نوع (Type) اهمیت نده، فقط رفتار (Behavior) را بررسی کن!" | @learnpythonicy
✔️ ترتیب وضوح متد یا همان MRO وقتی چندین کلاس والد داریم، پایتون برای پیدا کردن متدها و ویژگی‌ها از MRO استفاده می‌کند. MRO با الگوریتم C3 Linearization تعیین می‌شود. ✔️ بررسی MRO: با تابع
mro()
یا
__mro__
می‌توان ترتیب را دید: print(D.mro()) # [<class 'main.D'>, <class 'main.B'>, <class 'main.C'>, <class 'main.A'>, <class 'object'>] ✔️ کاربردهای MRO 1. حل تعارض ارث‌بری چندگانه 2. تعیین ترتیب فراخوانی متدها در سوپرکلاس‌ها (
super()
) 3. اجتناب از مشکلات Diamond Problem در ارث‌بری. | @LearnPythonIcy