بافت‌نگار تصاویر در پایتون (Histogram in Python)

در این جلسه تیم کدگیت را با آموزش بافت‌نگار تصاویر در پایتون (هیستوگرام تصاویر) همراهی کنید. پس از توضیح کوتاهی در خصوص نمودار بافت‌نگار، به کمک کتابخانه opencv در پایتون، نمودار بافت‌نگار پیکسل‌های یک تصویر را پیاده‌سازی خواهیم کرد. پیشنهاد می‌کنیم پیش از مطالعه این جلسه، آموزش‌های زیر را بررسی کنید:

بافت‌نگار

هیستوگرام یا بافت‌نگار، به نموداری گفته می‌شود که نشان دهد به عنوان مثال  چند پیکسل با مقدار 10 داریم. عدد 10 روی محور x قرارگرفته و اگر تعداد آن برابر با  52 باشد با محور y  مشخص می‌گردد. به زبان دیگر هیستوگرام به معنی نشان دادن میزان فراوانی مقادیر بر روی نمودار است در یک تصویر ما با شدت نور سر و کار داریم که بازه آن برای تصویر خاکستری از 0 تا 255 می‌باشد. یک نمونه از نمودار هیستوگرام در تصویر زیر مشاهده می‌کنید:

بافت‌نگار تصاویر در پایتون

بافت‌نگار تصاویر در پایتون

در کتابخانه opencv تابعی به نام calcHist وجود دارد. این تابع در خروجی، هیستوگرام تصویر ورودی را به ما می‌دهد. به کمک این تابع ما به پیاده‌سازی بافت‌نگار تصاویر در پایتون خواهیم پرداخت. کد این پیاده سازی به صورت زیر است:

در کد بالا ابتدا تصویر (لوگوی وبسایت کدگیت) را خوانده و آن را با کمک تابع imshow نمایش می‌دهیم. در ادامه تابع calcHist را صدا زده و ورودی‌های زیر را به آن می‌دهیم:

  • تصویر ورودی: تصویری که می‌خواهیم هیستوگرام آن را بدست آوریم.
  • کانال: کانال تصویر ورودی. در تصاویر RGB سه کانال وجود دارد و در تصاویر خاکستری یک کانال، به همین دلیل کانال صفر را به ورودی دوم می‌دهیم.
  • Mask: وقتی نیاز داریم هیستوگرام قسمتی از تصویر و نه همه آن را محاسبه کنیم از Mask استفاده می‌کنیم.
  • سایز هیستوگرام: این قسمت برابر با 256 است
  • محدوده یا range: محدوده تصویر ما بین 0-255 است. (برای تصاویر باینری محدوده چقدر باید باشد؟!)

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

بافت‌نگار تصاویر در پایتون

اگر سوالی در خصوص این جلسه دارید در قسمت کامنت سوال خود را مطرح کنید تا پاسخگوی شما باشیم.

Download “دانلود سورس بافت‌نگار تصاویر در پایتون” Histogram-in-Python-www.codegate.ir_.zip – 8 بار دانلود شده است – 13 کیلوبایت

پسورد: www.codegate.ir

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

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