آموزش کتابخانه Mahotas Python برای پردازش تصویر
Mahotas یک کتابخانه بینایی کامپیوتری و پردازش تصویر برای پایتون است. این با استفاده از C++ پیاده سازی می شود بنابراین بسیار سریع است و روی آرایه های NumPy عمل می کند.
پردازش تصویر به منظور استخراج اطلاعات معنادار از تصویر به عنوان یک امر پردازشی شناخته می شود. می توان آن را یک مطالعه علمی نامید که در آن روش ها یا عملکردهای مختلفی را روی تصاویر اعمال می کنیم تا بفهمیم ویژگی های متفاوت آن چیست. برای استخراج ویژگی های منحصر به فرد می توانیم تصویر را بهبود بخشیم یا تصویر را تنزل یا دیگرید دهیم.
Mahotas یک کتابخانه بینایی کامپیوتری و پردازش تصویر برای پایتون است.
پیشنهاد ویژه:
« اولین و کاملترین دوره آموزشی نرم افزار اودئون ODEON برای طراحی آکوستیک »
ثبت نام دوره آموزشی نرم افزار اودئون ODEON
این با استفاده از++C پیاده سازی می شود بنابراین بسیار سریع است و روی آرایه های NumPy عمل می کند. در حال حاضر، حدود 100 عملکرد برای بینایی کامپیوتری و پردازش تصویر دارد و همیشه در حال رشد است.
در این مقاله، توابع و روشهای مختلفی را که در Mahota وجود دارد و میتوان برای پردازش تصویر استفاده کرد، بررسی خواهیم کرد.
پیاده سازی:
مانند هر کتابخانه پایتون دیگری، ما می توانیم ماهوتاها را با استفاده از pip install mahota نصب کنیم.
1. وارد کردن کتابخانه های مورد نیاز
ما تمام قابلیت های mahotas را وارد می کنیم و به غیر از آن، pylab را برای توابع نمایش تصویر وارد می کنیم.
from mahotas import *
from pylab import imshow, show
2. بارگذاری تصویر
ما می توانیم از هر تصویری برای پردازش تصویر استفاده کنیم. برای بارگذاری تصویر از mahotas استفاده می کنیم.
img = mahotas.imread('/bird.jpg')
imshow(img)
show()
3. انجام عملیات های مختلف
اکنون با استفاده از mahota ها عملیات مختلفی را انجام می دهیم و ویژگی ها و اطلاعات مهم در مورد تصویر مورد استفاده خود را می یابیم.
پیشنهاد ویژه:
دوره آموزش ماژول آکوستیک ساختمانی نرم افزار کامسول
ثبت نام دوره آموزشی نرم افزار کامسول
- یافتن میانگین
میانگین یک تصویر با محاسبه مجموع مقادیر پیکسل و تقسیم آن بر تعداد کل مقادیر پیکسل محاسبه می شود. این یک معیار آماری است که می تواند برای فیلتر فضایی و کاهش نویز در پردازش تصویر استفاده شود.
ماهوتاس می تواند میانگین یک تصویر را محاسبه کند اما زمان داده یک کانال، چون تصویر ما رنگی است، آن را به یک کانال کاهش می دهیم و میانگین آن کانال را پیدا می کنیم.
img1 = img[:, :, 2]
mean = img1.mean()
print("Mean Value ", mean)
imshow(img1)
show()
- برش تصویر
در اینجا از تابع برش برای برش تصویر استفاده می کنیم.
img2 = img[:, 300:1200]
imshow(img)
show()
- یافتن Eccentricity and Roundness
خروج از مرکز یک تصویر کوتاه ترین طول مسیرها را از یک راس معین v برای رسیدن به هر رأس w دیگری از یک نمودار متصل اندازه گیری می کند. در حالی که گرد بودن میزان نزدیکی شکل یک جسم به دایره کامل ریاضی را اندازه می گیرد.
گرد بودن به جای تعریف لبهها و گوشههای آن، بر ویژگیهای درشت شکل غالب است. ما تصویر را فیلتر می کنیم تا هر دو مقدار یک کانال را پیدا کنیم.
img = img[:, :, 1]
ecc = mahotas.features.eccentricity(img)
rnds = mahotas.features.roundness(img)
print("Eccentricity =", ecc )
print("Roundness = ", rnds)
- اتساع و فرسایش تصویر Dilating and Eroding
اتساع پیکسل ها را به مرزهای اجسام در یک تصویر اضافه می کند، در حالی که فرسایش پیکسل ها را بر روی مرزهای اشیاء حذف می کند. ما هم اتساع و هم فرسایش را به تصویر خود اعمال خواهیم کرد.
#Dilate
dilt = mahotas.morph.dilate(img)
imshow(dilt)
show()
#Erosion
erd = mahotas.morph.erode(img)
imshow(erd)
show()
- ماکزیمم کردن تصویر Maxima
ما ماکسیماهای محلی را که قله های محلی در تصویر هستند و ماکسیماهای منطقه ای را که نسخه سخت گیرانه تری از ماکسیماهای محلی هستند پیدا می کنیم و بیشتر از همسایگی روی آنها کار می کنیم. برای یافتن حداکثر باید تصویر را با استفاده از تابع max فیلتر کنیم.
#Local Maxima
img2 = img.max(2)
lmaxim = mahotas.locmax(img)
imshow(lmaxim)
show()
#Regional Maxima
rmaxim = mahotas.regmax(img2)
imshow(rmaxim)
show()
- پوشش تصویرOverlay
تصویر همپوشانی، مقیاس خاکستری تصویر داده شده را ایجاد می کند، اما با همپوشانی های بولی احتمالی. ما این کار را برای 1 کانال انجام خواهیم داد.
img = img[:, :, 0]
ol = mahotas.overlay(img)
imshow(ol)
show()
- هیستوگرام تصویر
هیستوگرام یک تصویر به عنوان یک نمایش گرافیکی از توزیع تونال در یک تصویر عمل می کند و تعداد پیکسل ها را برای هر مقدار تون رسم می کند. برای تجسم هیستوگرام باید matplotlib را وارد کنیم.
import matplotlib.pyplot as plt
img_hist = mahotas.fullhistogram(img)
plt.hist(img_hist)
نتیجه گیری:
در این مقاله دیدیم که چگونه می توانیم از ماهوتا برای پردازش تصویر استفاده کنیم. ما چند توابع بسیار ابتدایی تا پیشرفته را برای استخراج و تجسم ویژگی های تصویر دیدیم.
به طور مشابه، توابع بسیار بیشتری وجود دارد که می توانیم برای پردازش تصویر از آنها استفاده کنیم. دیدیم که چقدر راحت و بدون زحمت میتوانیم تصویر را با استفاده از mahotas تنها در یک خط کد پردازش کنیم.