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
#بدانیم | #پردازش_تصویر | آموزش پایتون
کد تصویر بالا👆
import cv2 import numpy as np import matplotlib.pyplot as plt def process_and_show_images(image_path): # خواندن تصویر image = cv2.imread(image_path) # بررسی اینکه آیا تصویر به درستی خوانده شده است یا نه if image is None: print(f"Error: Could not read the image from path: {image_path}") return # تبدیل تصویر به RGB برای نمایش با Matplotlib image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # تبدیل تصویر به خاکستری gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # اعمال فیلتر بلور blurred_image = cv2.GaussianBlur(image_rgb, (15, 15), 0) # استخراج لبهها با استفاده از فیلتر کنی edges = cv2.Canny(gray_image, 100, 200) # تنظیمات نمایش تصاویر fig, axs = plt.subplots(2, 2, figsize=(10, 8)) axs[0, 0].imshow(image_rgb) axs[0, 0].set_title("Original Image") axs[0, 0].axis('off') axs[0, 1].imshow(gray_image, cmap='gray') axs[0, 1].set_title("Gray Image") axs[0, 1].axis('off') axs[1, 0].imshow(blurred_image) axs[1, 0].set_title("Blurred Image") axs[1, 0].axis('off') axs[1, 1].imshow(edges, cmap='gray') axs[1, 1].set_title("Edges") axs[1, 1].axis('off') plt.show() # مسیر کامل تصویر ورودی image_path = 'path_to_your_image.jpg' process_and_show_images(image_path)🔘توجه شود که در قسمت image_path، باید آدرس عکس مورد نظر را قرار دهید.
📝 ثبت پیامهای برنامه با استفاده از ماژول logging در پایتون
این کد از ماژول logging برای ثبت پیامهای اطلاعاتی (INFO)، هشدار (WARNING) و خطا (ERROR) استفاده میکند. با تنظیم سطح لاگ (level=logging.INFO)، فقط پیامهای با اهمیت بالا ثبت میشوند. این روش برای نظارت بر اجرای برنامه، اشکالزدایی و بهبود پایداری بسیار مفید است. 🚀
#logging | LearnPython | #بدانیم
کد فوق دو روش برای شمارش تکرار هر حرف در جمله text را ارائه میدهد.
1. استفاده از دیکشنری: در این روش، با یک حلقه برای هر کاراکتر در متن، تعداد تکرارها در یک دیکشنری بهروز میشود.
2. استفاده از ماژول Counter: این روش به طور مستقیم از ماژول collections استفاده میکند و شمارش تکرار هر کاراکتر را به صورت ساده و کارآمد انجام میدهد.
این دو روش به شما این امکان را میدهند که به راحتی تعداد تکرار هر کاراکتر را در متن خود محاسبه کنید.
#counter | #collections | #بدانیم | LearnPython
بنظرتون کد بالا به چه دردی میخوره اصلا؟ 🧐
کد فوق برای شمارش تعداد تکرار هر کاراکتر در یک رشته مناسب است. این کار میتواند در برنامهنویسی و تحلیل دادههای متنی به چند دلیل مفید باشد:
1. تحلیل دادههای متنی: به کاربر اجازه میدهد تا الگوها و فراوانی کاراکترها را در متون مختلف مشاهده کند.
2. فهم بهتر بازخوردهای کاربر: میتوان از این تکنیک برای تحلیل بازخوردهای متنی و نظرات کاربران استفاده کرد و بفهمید چه کاراکترها یا کلمات بیشتری مورد استفاده قرار گرفتهاند.
3. دستکاری متن: در پردازش دادهها، شمارش کاراکترها به درک بهتری از ساختار و جزئیات متن کمک میکند و میتواند در دستکاریهای متنی نیز موثر باشد.
#counter | #collections | #بدانیم
راههای مختلف برای ساخت دیکشنری با استفاده از لیست
میتوان گفت که دیکشنریها یکی از مهمترین ساختارهای دادهای در پایتون هستند که به ذخیرهسازی و دسترسی سریع به اطلاعات کمک میکنند.
#dict | #list | #بدانیم | LearnPython
Hacking Secret Ciphers with Python.pdf
حجم:
7.3M
📚«Hacking Secret Ciphers with Python»
📚کتاب "رمزنگاری سیفرهای مخفی با پایتون"
✅آیا به دنبال ورود به دنیای رمزنگاری و کدگذاری هستید؟
✅این کتاب یک راهنمای اختصاصی برای یادگیری تکنیکهای رمزنگاری با بهرهگیری از زبان برنامهنویسی پایتون است. با رویکردی عملی، خوانندگان با روشهای نوشتن و شکستن سیفرهای عرفی آشنا میشوند و مهارتهای خود را در این حوزه تقویت میکنند.
✅خلاصهای از کتاب
کتاب با تمرکز بر پروژهها و تمرینات جذاب، به شما کمک میکند تا به صورت گام به گام با مفاهیم رمزنگاری آشنا شوید و بتوانید کدهای مخفی خود را ایجاد و رمزگشایی کنید.
#معرفی_کتاب | #بوک_تایم | آموزش پایتون
این کد نحوه کار با ارجاعات ضعیف در پایتون را نشان میدهد. با استفاده از weakref، از حافظه به طور مؤثری استفاده کنید و از نشت حافظه جلوگیری نمایید. این رویکرد به مدیریت بهتر منابع در کدهای بزرگ و پیچیده کمک میکند.
#weakref | LearnPython
🔆 ماژول weakref در پایتون برای ایجاد ارجاعهای ضعیف (weak references) به اشیا استفاده میشود. ارجاعهای ضعیف به اشیا اجازه میدهند تا توسط garbage collector جمعآوری شوند، حتی اگر هنوز ارجاعهای ضعیفی به آنها وجود داشته باشد. این ماژول در مواقعی مفید است که میخواهید به یک شی اشاره کنید، اما نمیخواهید مانع از جمعآوری آن توسط garbage collector شوید.
در زیر یک مثال کاربردی از استفاده از ماژول weakref آورده شده است:
import weakref
class MyClass:
def init(self, name):
self.name = name
def del(self):
print(f'{self.name} is being deleted')
# ایجاد یک نمونه از کلاس
obj = MyClass('MyObject')
# ایجاد یک ارجاع ضعیف به شی
weak_ref = weakref.ref(obj)
# دسترسی به شی از طریق ارجاع ضعیف
print(f'Object name: {weak_ref().name}')
# حذف ارجاع قوی به شی
del obj
# تلاش برای دسترسی به شی از طریق ارجاع ضعیف بعد از حذف
if weak_ref() is None:
print('The object has been deleted')
else:
print(f'Object name: {weak_ref().name}')
🔅 توضیحات:
1. تعریف کلاس MyClass: این کلاس یک متغیر name در خود دارد و در زمان حذف شی، یک پیام را چاپ میکند.
2.ساخت یک نمونه از کلاس: شی obj از کلاس MyClass با نام 'MyObject' ساخته میشود.
3.ایجاد ارجاع ضعیف: با استفاده از weakref.ref(obj), یک ارجاع ضعیف به شی obj (که به طور مستقیم به آن دسترسی ندارد) ایجاد میشود.
4.دسترسی به شی از طریق ارجاع ضعیف: با استفاده از weak_ref(), نام شی از طریق ارجاع ضعیف چاپ میشود.
5.حذف ارجاع قوی: با استفاده از del obj, حذف ارجاع قوی به شی انجام شده و منجر به آمادهسازی آن برای حذف از حافظه میشود.
6.تلاش برای دسترسی پس از حذف: در نهایت، با بررسی اینکه آیا weak_ref() مقدار None را برمیگرداند یا خیر، مشخص میشود که آیا شی حذف شده است یا خیر. اگر ارجاع ضعیف متوجه شود که شی حذف شده است، پیام مربوط به آن چاپ میشود.
🔅 خروجی برنامه:
Object name: MyObject
MyObject is being deleted
The object has been deleted
این مثال نشان میدهد که چگونه میتوان از ارجاعهای ضعیف برای مدیریت حافظه و جلوگیری از نگهداری اشیا در حافظه زمانی که دیگر نیازی به آنها نیست، استفاده کرد.
#weakref | LearnPython