همه دسته بندی ها
کتابخانه SCIKIT-IMAGE برای پردازش تصویر در پایتون - داده کاوی ویستا

کتابخانه SCIKIT-IMAGE برای پردازش تصویر در پایتون

 

Scikit-image یک کتابخانه پردازش تصویر منبع باز برای پایتون است که بر اساس کتابخانه های محاسباتی علمی NumPy و SciPy است.

الگوریتم‌های متنوعی از مباحث قسمت بندی تصاویر، تبدیلات هندسی، کار در فضای رنگ، آنالیز تصاویر، فیلترینگ، ریخت شناسی (Morphology)، تشخیص ویژگی‌ها و … همراه این کتابخانه در دسترس می‌باشد.

 

نصب کتابخانه Scikit-image

این کتابخانه در اینجا فهرست شده است. برای نصب کتابخانه پردازش تصویر Scikit-image، فقط از کد زیر استفاده کنید:

pip install scikit-image

برای استفاده از کتابخانه فوق در کد خود کافیست آن را وارد کرده و بسته به نیاز خود از ماژول های مختلف آن استفاده کنید.

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

همچنین، بسیاری از توابع و الگوریتم‌های پیاده‌سازی شده را می‌توان در «زیر واحدهای» (Submodules) این بسته برنامه‌نویسی پیدا کرد و مورد استفاده قرار داد. در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط ابزار SciKit-Image قابل انجام است، نمایش داده خواهد شد.

 

مثال پردازش تصویر با Scikit-image

نمونه های مختلفی از کار با کتابخانه در زیر ذکر شده است که هم برای آموزش و هم برای استفاده و کار با تصاویر در پایتون می تواند بسیار مفید باشد:

https://scikit-image.org/docs/dev/auto_examples/

 

اعمال فیلتر میانگین بر روی تصویر

بعنوان مثال در کد زیر میخواهیم که فیلتر میانگین یا Mean Filter را بر روی تصویری اعمال کنیم :

import matplotlib.pyplot as plt

from skimage import data

from skimage.morphology import disk

from skimage.filters import rank

image = data.coins()

selem = disk(20)

percentile_result = rank.mean_percentile(image, selem=selem, p0=.1, p1=.9)

bilateral_result = rank.mean_bilateral(image, selem=selem, s0=500, s1=500)

normal_result = rank.mean(image, selem=selem)

fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10, 10),

                         sharex=True, sharey=True)

ax = axes.ravel()

titles = [‘Original’, ‘Percentile mean’, ‘Bilateral mean’, ‘Local mean’]

imgs = [image, percentile_result, bilateral_result, normal_result]

for n in range(0, len(imgs)):

    ax[n].imshow(imgs[n], cmap=plt.cm.gray)

    ax[n].set_title(titles[n])

    ax[n].axis(‘off’)

plt.tight_layout()

plt.show()

کد بالا ابتدا تصویر Coin را بارگذاری می کند و سپس سه نوع فیلتر میانگین را روی آن اعمال می کند و در نهایت هر 4 تصویر را نمایش می دهد.

 

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

 

کتابخانه SCIKIT-IMAGE برای پردازش تصویر در پایتون - داده کاوی ویستا

 

فیلتر کردن عکس

 

«فیلتر گذاری روی تصاویر» (Image Filtering): با استفاده از این ابزار، می‌توان فیلترهای «بالاگذر» (High Pas) و «پایین گذر» (Low Pass) را جهت انجام پردازش‌هایی نظیر «تشخیص لبه» (Edge Detection) روی تصاویر اعمال کرد.

import matplotlib.pyplot as plt 

%matplotlib inline

      

from skimage import data,filters

      

image = data.coins()   # … or any other NumPy array!  

edges = filters.sobel(image) 

plt.imshow(edges, cmap=’gray’)

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

 

کتابخانه SCIKIT-IMAGE برای پردازش تصویر در پایتون - داده کاوی ویستا

 

تشخیص چهره در عکس

کد زیر نیز به راحتی و در زمان کوتاهی قادر به تشخیص چهره افراد در تصویر می باشد:

from skimage import data

from skimage.feature import Cascade

import matplotlib.pyplot as plt

from matplotlib import patches

# Load the trained file from the module root.

trained_file = data.lbp_frontal_face_cascade_filename()

# Initialize the detector cascade.

detector = Cascade(trained_file)

img = data.astronaut()

detected = detector.detect_multi_scale(img=img,

                                       scale_factor=1.2,

                                       step_ratio=1,

                                       min_size=(60, 60),

                                       max_size=(123, 123))

plt.imshow(img)

img_desc = plt.gca()

plt.set_cmap(‘gray’)

for patch in detected:

    img_desc.add_patch(

        patches.Rectangle(

            (patch[‘c’], patch[‘r’]),

            patch[‘width’],

            patch[‘height’],

            fill=False,

            color=’r’,

            linewidth=2

        )

    )

plt.show()

برای دانلود کد فوق  و توضیحات بیشتر میتوانید به سایت زیر مراجعه کنید.

scikit-image.org

خروجی کد فوق به صورت زیر می باشد:

 

کتابخانه SCIKIT-IMAGE برای پردازش تصویر در پایتون - داده کاوی ویستا

 

تطبیق الگو در پایتون با  SciKit-Image

«تطبیق الگو» (Template Matching): در برنامه‌های پردازش تصویر، الگوریتم‌های تطبیق الگو برای تشخیص ظاهر یک تصویر الگو در یک یا مجموعه‌ای از تصاویر دیگر استفاده می‌شوند.

import numpy as np

import matplotlib.pyplot as plt

from skimage import data

from skimage.feature import match_template

image = data.coins()

coin = image[170:220, 75:130]

result = match_template(image, coin)

ij = np.unravel_index(np.argmax(result), result.shape)

x, y = ij[::-1]

fig = plt.figure(figsize=(8, 3))

ax1 = plt.subplot(1, 3, 1)

ax2 = plt.subplot(1, 3, 2)

ax3 = plt.subplot(1, 3, 3, sharex=ax2, sharey=ax2)

ax1.imshow(coin, cmap=plt.cm.gray)

ax1.set_axis_off()

ax1.set_title(‘template’)

ax2.imshow(image, cmap=plt.cm.gray)

ax2.set_axis_off()

ax2.set_title(‘image’)

# highlight matched region

hcoin, wcoin = coin.shape

rect = plt.Rectangle((x, y), wcoin, hcoin, edgecolor=’r’, facecolor=’none’)

ax2.add_patch(rect)

ax3.imshow(result)

ax3.set_axis_off()

ax3.set_title(‘`match_template`\nresult’)

# highlight matched region

ax3.autoscale(False)

ax3.plot(x, y, ‘o’, markeredgecolor=’r’, markerfacecolor=’none’, markersize=10)

plt.show()

نتیجه حاصل از کد فوق را در تصویر زیر میتوانید ببینید:

 

کتابخانه SCIKIT-IMAGE برای پردازش تصویر در پایتون - داده کاوی ویستا

 

 

دوره آموزشی زبان برنامه نویسی پایتون »کلیک کنید» یک برنامه جامع است که بر توسعه سریع نرم‌افزارهای کاربردی، برنامه‌نویسی شی‌گرا و کاربری ماژول و….  با استفاده از ابزار Python تمرکز دارد.

سپاسگذاریم از وقتی که برای خواندن این مقاله گذاشتید

 

برای خرید لایسنس پاور بی ای Power BI کلیک کنید

.

برای مشاهده ویدیوهای آموزشی داده کاوی و هوش تجاری ما را در شبکه های اجتماعی دنبال کنید

Youtube Chanel :VISTA Data Mining کانال یوتیوب

Aparat Chanel: VISTA Data Mining کانال آپارات

Instagram Chanel: VISTA Data Mining کانال اینستاگرام

Telegram Chanel: VISTA Data Mining کانال تلگرام

Linkedin Chanel: VISTA Company کانال لینکدین

 

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

 

امتیاز دهید

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

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

سبد خرید
ورود

هنوز حساب کاربری ندارید؟

خانه
0 محصول سبد خرید
0 علاقه مندی