معرفی ماژول های پایتون برای پردازش تصاویر – قسمت چهارم 

موسسه پایا پروژه به عنوان متصدی انجام پروژه های پردازش تصویر با پایتون وظیفه ی خود می داند که در راستای آموزش نرم افزار پایتون گام های موثری را بردارد. با توجه به اینکه یک دوره آموزشی متلب مستلزم تمرین و تلاش بسیار است. اما این موسسه تلاش می کند سهم کوچکی در جهت یادگیری شما داشته باشد.

پکیج SciPy (سای پای)  یک پکیج علمی و اوپن سورس مبتنی بر زبان پایتون است و برای انجام محاسبات علمی و مهندسی مورد استفاده قرار می‌گیرد. کتابخانه‌ی SciPy بر مبنای کتابخانه‌ی NumPy است و امکان کار با آرایه‌های n بُعدی را فراهم می‌کند. این کتابخانه برای کار با آرایه‌های    Numpy  ایجاد شده است و بسیاری از عملیات محاسباتی و بهینه‌سازی را به طور کارا ممکن می‌کند. هر دو پکیج Numpy و Scipy روی سیستم عامل‌های موجود کار می‌کنند و به راحتی نصب می‌شوند. در این مقاله به آموزش کتابخانه‌ی SciPy در پایتون خواهیم پرداخت و در پایان شما متوجه خواهید شد که SciPy چیست و می‌توانید پروژه‌ی خود را به کمک scipy شروع کرده و پیش ببرید.

 

۱ـ نصب کتابخانهSciPy

 

یکی از روش‌های معمول  نصب Scipy استفاده از دستور زیر است.

pip install pandas

 

اگر ما از توزیع پکیج آناکوندا استفاده کنیم،  Scipy به طور پیش‌فرض در آن نصب شده است.

۲ـ پردازش تصویر با Scipy

 

زیرمجموعه‌ی scipy_ndimage به پردازش تصویر اختصاص داده شده است و منظور از عبارت ndimage ، تصویر n بعدی است. و همچنین برخی از کارهای معمول که در پردازش تصویر انجام می‌گیرد، شامل موارد زیر است:

  • ورودی/خروجی و نمایش تصویر
  • تغییرات اولیه در عکس مثل برش تصویر، چرخش، تقسیم و …
  • اعمال فیلترهای مختلف روی عکس مانند حذف نویز و sharp کردن و …
  • قطعه‌بندی تصاویر یا سگمنت کردن: برچسب‌گذاری پیکسل‌ها متناسب با آبجکت‌های مختلف در عکس
  • طبقه‌بندی یا کلاس‌بندی
  • استخراج ویژگی ها
  • رجیستر کردن تصاویر

حال ببینیم برخی از این مراحل با Scipy چگونه انجام می‌شوند.

 

 ۲ـ۱ باز کردن و نوشتن در فایل‌های تصویری

پکیج misc در Scipy مجموعه‌ای از عکس‌ها را با خود به همراه دارد. می‌توان از آن عکس‌ها برای آموزش کار با تصاویر و اعمال تغییراتی در آن‌ها استفاده کرد. نمونه کد زیر یک عکس را دریافت می کند و مجموعه های آرایه های آن را همراه با تصاویر نمایش می دهد:

 

from scipy import misc

()f = misc.face

misc.imsave(‘face.png’, f) # uses the Image module (PIL)

import matplotlib.pyplot as plt

plt.imshow(f)

()plt.show

 

و همچنین برنامه‌ی بالا خروجی زیر را تولید می‌کند.

 

 

هر تصویری در فرمت خام خود ترکیبی از رنگ‌هاست که توسط اعداد در قالب ماتریس نمایش داده می‌شوند. کامپیوتر تنها بر اساس آن اعداد تصاویر را درک و پردازش می‌کند. روش RGB جزو روش‌های بسیار پرکاربرد و مرسوم در نمایش داده‌هاست.

به عنوان مثال اطلاعات آماری در خصوص تصویر بالا با کد زیر قابل استخراج است:

 

from scipy import misc

face = misc.face(gray = False)

print (face.mean(), face.max(), face.min())

و در نهایت برنامه‌ی بالا خروجی زیر را تولید می‌کند که میانگین و ماکزیمم و مینیمم مقادیر از بردار RGB را استخراج می‌کند.

 

 

حال می‌دانیم که هر عکس از اعدادی ساخته شده است، پس هر تغییری در مقدار این اعداد، منجر به تغییر تصویر می‌شود. بیایید چند تغییر هندسی روی تصویر اعمال کنیم. از پایه‌ای‌ترین تغییرات هندسی روی تصاویر، برش یا  crop  کردن تصویر است. در کد زیر تصویر را از هر طرف به اندازه‌ی ۱/۴ برش می‌زنیم.

 

from scipy import misc

face = misc.face(gray = True)

lx, ly = face.shape

# Cropping

crop_face = face[lx / 4: – lx / 4, ly / 4: – ly / 4]

import matplotlib.pyplot as plt

plt.imshow(crop_face)

()plt.show

برنامه‌ی بالا، تصویر زیر را به عنوان خروجی تولید می‌کند.

 

همچنین می‌توانیم تصویر خود را در جهت بالا به پایین بچرخانیم. به کد زیر توجه کنید:

 

# up <-> down flip

from scipy import misc

()face = misc.face

flip_ud_face = np.flipud(face)

import matplotlib.pyplot as plt

plt.imshow(flip_ud_face)

()plt.show

کد بالا تصویر را مانند شکل زیر می‌چرخاند:

 

همچنین از تابع rotate() می‌توان برای چرخاندن عکس با مقدار زاویه‌ی دلخواه استفاده کرد که نمونه آن، در کد زیر پیاده سازی شده است:

 

rotation#

from scipy import misc,ndimage

()face = misc.face

rotate_face = ndimage.rotate(face, 45)

import matplotlib.pyplot as plt

plt.imshow(rotate_face)

()plt.show

و خروجی به شکل زیر است:

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
برای ادامه، شما باید با قوانین موافقت کنید

2 × 3 =

فهرست
WeCreativez WhatsApp Support
ساعت کاری 8 صبح الی 21 شب می باشد و از طریق شماره 09108760286 می توانید با ما در ارتباط باشید.
👋 سلام، چطور میتونم به شما کمک کنم؟