موضوعات وبسایت : فناوری
سوالات امتحان آیین نامه رانندگی

توابع پردازش تصویر در متلب

توابع پردازش تصویر در متلب

نویسنده : معین | زمان انتشار : 12 آذر 1399 ساعت 14:28

جهت درج تبلیغات با قیمت مناسب در این سایت میتوانید به آی دی تلگرام زیر پیام دهید

@AlirezaSepand



در این پست یک مطلب با عنوان توابع پردازش تصویر در متلب را مطالعه خواهید کرد.

تعداد بازدید ها: 12,045

سوالات امتحان آیین نامه رانندگی

در این مطلب، با مبحث پردازش تصویر در متلب آشنا خواهید شد. همچنین، بسیاری از مفاهیم پایه و تعدادی از مفاهیم و موضوعات پیشرفته پردازش تصویر در متلب ارائه خواهند شد. هدف از این مطلب، پوشش دادن نحوه عملکرد و شیوه استفاده از «توابع» (Functions) یکی از معروف‌ترین «تولباکس‌های» (Toolbox) موجود در «محیط محاسبات عددی» (Numerical Computing Environment) و زبان برنامه نویسی «متلب» (Matlab) است؛ «تولباکس پردازش تصویر» (Image Processing Toolbox | جعبه ابزار پردازش تصویر).

در ابتدا، تعریف ابتدایی از «تصاویر دیجیتال» (Digital Images) و محیط برنامه‌نویسی متلب ارائه خواهد شد. سپس، مجموعه‌ای از عملیات ابتدایی پردازش تصویر در متلب مورد بررسی قرار خواهد گرفت. از جمله مهم‌ترین فرایندهای پردازشی مقدماتی روی تصاویر دیجیتال، می‌توان به مواردی نظیر «خواندن تصویر» (Image Reading)، «نمایش تصویر» (Image Display) و «ذخیره‌سازی تصویر» (Image Storing) اشاره کرد. در ادامه نیز، مجموعه‌ای از توابع پردازش تصویر پیشرفته در متلب مورد بررسی قرار خواهد گرفت و چگونگی استفاده از آن‌ها برای پردازش تصویر در متلب شرح داده خواهد شد.

پردازش تصویر

«پردازش تصویر» (Image Processing) به مجموعه‌ای از تکنیک‌هایی اطلاق می‌شود که با هدف «تبدیل» (Convert) یک تصویر به «قالب دیجیتال» (Form) و انجام اعمال محاسباتی بر روی آن شکل گرفته‌اند. هدف از انجام اعمال محاسباتی مرتبط با پردازش تصویر در متلب، تولید نسخه‌ای «بهبود یافته» (Enhanced) از تصاویر دیجیتالی و یا استخراج اطلاعات با معنی و مفید از آن‌ها است. تغییراتی که بر اثر پردازش تصویر دیجیتالی، روی تصاویر اتفاق می‌افتند، معمولا به طور خودکار و بر پایه مجموعه‌ای از الگوریتم‌های به دقت طراحی شده انجام می‌شوند. این دسته از الگوریتم‌های پردازش تصویر در متلب، از لحاظ محاسباتی بسیار «دقیق» (Accurate) و «بهینه» (Optimized) هستند.

حوزه پردازش تصویری، یک حوزه «چند رشته‌ای» (Multidisciplinary) در شاخه «علوم کامپیوتر» (Computer Science) است که بخشی از مفاهیم خود را از رشته‌های علمی دیگر نظیر «ریاضیات» (Mathematics)، «فیزیک» (Physics) و «مهندسی برق» (Electrical Engineering) به اشتراک گرفته است. همچنین، حوزه پردازش تصویر، هم‌پوشانی بسیار زیادی با حوزه‌های تحقیقاتی نظیر «بازشناسی الگو» (Pattern Recognition)، «یادگیری ماشین» (Machine Learning)، «هوش مصنوعی» (Artificial Intelligence) و «بینایی کامپیوتر» (Computer Vision) دارد.

برای انجام عملیات محاسباتی متناظر با پردازش تصویر در متلب، ابتدا باید تصاویر دیجیتال از طریق «واسط‌هایی» (Interfaces) نظیر «اسکنر نوری» (Optical Scanner) و «دوربین‌های دیجیتال» (Digital Cameras) تولید شوند. سپس، تصاویر دیجیتال تولید شده «تحلیل» (Analyze) می‌شوند. در مرحله بعد، تصاویر دیجیتالی از طریق فرآیندهایی نظیر «فشرده‌سازی داده‌ها» (Data Compression)، «بهبود تصاویر» (Image Enhancements)، «فیلتر تصاویر» (Image Filtering) و سایر موارد، مورد «دستکاری عددی» (Numerical Manipulation) قرار گرفته و در نهایت، تصاویر خروجی مطلوب تولید می‌شوند.

«قوه محرکه» (Driving Force) توسعه تکنیک‌های پردازش تصویر در متلب، نیاز محققان این حوزه به «استخراج اطلاعات» (Information Extraction) مفید و بامعنی از تصاویر دیجیتالی و تفسیر آن‌ها است. امروزه، از تکنیک‌های توسعه داده شده در حوزه پردازش تصویر، در شاخه‌های مختلفی نظیر «پزشکی» (Medicine)، «صنعت» (Industry)، «نظامی» (Military)، «دستگاه‌های الکترونیکی کاربردی» (Consumer Electronics) و سایر موارد استفاده می‌شود.

در پزشکی، از تکنیک‌های پردازش تصویر در دستگاه‌ها و روش‌های «تصویربرداری تشخیص پزشکی» (Diagnostic Imaging Modalities) نظیر «برش‌نگاری با انتشار پوزیترون» (Positron Emission Tomography | PET)، «برش‌نگاری محوری کامپیوتر» (Computerised Axial Tomography | CAT)، «تصویربرداری رزونانس مغناطیسی» (Magnetic Resonance Imaging | MRI) و «تصویربرداری رزونانس مغناطیسی کارکردی» (functional Magnetic Resonance Imaging | fMRI) استفاده می‌شود. بسیاری از تکنیک‌های تشخیص پزشکی، توسط الگوریتم‌های پردازش تصویر در متلب پیاده‌سازی می‌شوند.

همچنین، سیستم‌های تولید نظیر سیستم‌های ایمنی، سیستم‌های کنترل کیفیت و سیستم‌های «کنترل وسیله نقلیه خودراهنما» (Automated Guided Vehicle Control) از جمله کاربردهای تکنیک‌های پردازش تصویر در صنعت محسوب می‌شوند.

الگوریتم‌های پیشرفته پردازش تصویر در کاربردهایی نظیر «تشخیص سرباز یا وسیله نقلیه» (Detection of Soldiers or Vehicles)، «هدایت موشک» (Missile Guidance)، «بازشناسی اشیاء» (Object Recognition) و سایر موارد مورد استفاده قرار می‌گیرند. تکنیک‌های «بیومتریک» (Biometric) نظیر بازشناسی اثر انگشت، صورت، دست و عنبیه، به شکل گسترده‌ای توسط «نیروهای امنیتی و اجرای قانون» (Law Enforcement and Security) به کار گرفته می‌شوند. بسیاری از روش‌های مورد نیاز برای پیاده‌سازی چنین کاربردهایی، از طریق الگوریتم‌های پردازش تصویر در متلب قابل پیاده‌سازی هستند.

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

متلب

محیط محاسبات عددی و زبان برنامه‌نویسی «متلب» (MATLAB)، که مخفف عبارت «آزمایشگاه ماتریس» (MATrix LABoratory) است، پلتفرمی برای حل مسائل علمی و ریاضیاتی است. متلب یک «زبان برنامه‌نویسی اختصاصی» (Proprietary Programming Language) توسعه داده شده به وسیله شرکت MathWorks است.

در این محیط برنامه‌نویسی، توسعه‌دهندگان قادرند تا از روش‌های «دستکاری ماتریسی» (Matrix Manipulation)، توابع، روش‌های نمایش داده و الگوریتم‌های توسعه داده شده در متلب، برای پیاده‌سازی روش‌های هوشمند (مبتنی بر نمایش عددی و ماتریسی) دلخواه خود استفاده کنند. همچنین، متلب امکان تعامل برنامه‌نویسی مستقیم را با برنامه‌های نوشته شده به زبان‌های دیگر نظیر «سی» (C)، «سی پلاس پلاس» (++C)، «جاوا» (Java) و سایر موارد، برای توسعه‌دهندگان فراهم آورده است.

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

از الگوریتم‌های پردازش تصویر در متلب، می‌توان برای «بخش‌بندی تصاویر» (Image Segmentation)، بهبود تصاویر، «کاهش نویز» (Noise Reduction) در تصاویر، «تبدیلات هندسی» (Geometric Transformation)، «انطباق تصویر» (Image Registration) و انجام عملیات «پردازش تصویر 3-بعدی» (3D Image Processing) استفاده کرد.

تصویر دیجیتالی چیست؟

یک تصویر دیجیتال در تولباکس پردازش تصویر در متلب، در قالب یک تابع دو بعدی به شکل $$F(x,y)$$ تعریف می‌شود. در این تابع، $$x$$ و $$y$$ مختصات مکانی هر نقطه را در تصویر نشان می‌دهند. همچنین، به دامنه مقداری تابع $$F$$، به ازاء هر جفت مختصات $$x$$ و $$y$$، «شدت» (Intensity) تصویر در آن نقطه گفته می‌شود. در صورتی که $$x$$ ،$$y$$ و دامنه مقداری تابع $$F$$، همگی مقادیر گسسته متناهی باشند، به تصویر مورد نظر، یک تصویر دیجیتال گفته می‌شود.

به فرایند «عددی‌سازی» (Digitising) مقادیر مختصات، «نمونه‌گیری» (Sampling) و به فرایند عددی‌سازی مقادیر شدت، «کوانتیزه‌سازی» (Quantization) گفته می‌شود. نتیجه حاصل از فرایندهای نمونه‌گیری و کوانتیزه‌سازی، تولید ماتریسی از مقادیر «حقیقی» (Real) است. یک تصویر دیجیتال، از طریق ماتریسی به شکل زیر قابل نمایش است:

به هر کدام از عناصر موجود در این ماتریس، «پیکسل» (Pixel) یا عنصر تصویر گفته می‌شود.

دستورات ابتدایی پردازش تصویر در متلب

در متلب، بر خلاف فرم نمایش قبلی، یک تصویر به شکل زیر نمایش داده می‌شود:

تفاوت این نمایش با نمایش قبلی است که در متلب، «مبدأ» (Origin) از (0، 0) به (1، 1) «انتقال» (Shift) داده می‌شود.

خواندن تصاویر در متلب

برای خواندن تصاویر در محیط متلب، از تابع (imread) استفاده می‌شود. «قالب دستوری» (Syntax) این تابع به شکل زیر است:

در این تابع، آرگومان (filename) رشته‌ای است که نام کامل تصویر و «فرمت» (Extension) آن را نمایش می‌دهد. به عنوان نمونه:

F=imread(Penguins_grey.jpg);

G=imread(Penguins_RGB.jpg);

شایان توجه است زمانی که آدرس فیزیکی محل ذخیره‌سازی تصویر، در آرگومان (filename) قید نشده باشد، تابع (imread) تصویر را از «دایرکتوری» (Directory) کنونی متلب خواهد خواند. در شرایطی که نیاز باشد تا تصویر از دایرکتوری دیگری در متلب خوانده شود، لازم است تا آدرس کامل تصویر در آرگومان (filename) مشخص شود.

در صورت قرار ندادن «نقطه ویرگول» (Semicolon) در انتهای دستورات متلب، نتایج ذخیره شده در یک متغیر یا خروجی حاصل از یک عملیات پردازشی در «پنجره دستورات» (Command Window) نمایش داده می‌شوند. در غیر این صورت، نتایج عملیات تنها در متغیرها ذخیره می‌شوند و خروجی‌‌ها در پنجره دستورات نمایش داده نخواهند شد. نماد (<<)، ابتدای یک خط دستوری را نمایش می‌دهد.

تصویر سطح خاکستری از پنگوئن‌ها تصویر RGB از پنگوئن‌ها

از توابع (imshow) ،(imread) و (imwrite) در متلب، برای خواندن تصاویر در محیط متلب، نمایش تصاویر در «میز‌کار» (Desktop) متلب و ذخیره‌سازی تصاویر در دایرکتوری کنونی متلب استفاده می‌شود. در صورتی که تصویر مورد نظر، دقت پیکسلی برابر یا 256×256 و در فضای «سطح خاکستری» (Greyscale) تعریف شده باشد، ماتریس حاصل از اجرای دستور (imread)، ابعادی برابر با 256×256 یا 655536 عنصر خواهد داشت. با اجرای دستور زیر (شکل اول):

imread(Penguins_grey.jpg);

مقادیر سطح خاکستری تمامی پیکسل‌های موجود در تصویر سطح خاکستری، در ماتریسی به نام F و با ابعاد 256×256 ذخیره می‌شود. از این به بعد، ماتریس F یک «متغیر» (Variable) متلب محسوب می‌شود و می‌توان عملیات ماتریسی مختلفی بر روی آن انجام داد. در صورتی که دستور زیر (شکل دوم) اجرا شود:

G=imread(Penguins_RGB.jpg);

یک تصویر رنگی در «فضای رنگی» (Color Space) به نام RGB تعریف و در متغیر G ذخیره می‌شود. تفاوت خروجی این دستور با خط دستوری قبلی این است که در این حالت، مقادیر پیکسلی شامل لیستی از سه مقدار خواهند بود. هر کدام از مقادیر سه‌گانه پیکسلی، متناظر با مقادیر مؤلفه‌های قرمز، سبز و آبی رنگ یک پیکسل داده شده هستند. بنابراین، ماتریس G یک ماتریس سه‌بعدی با ابعاد 256x256x3 خواهد بود. به طور خلاصه، تابع (imread) مقادیر پیکسلی را از یک فایل تصویر می‌خواند و ماتریس حاوی تمامی مقادیر پیکسلی را خروجی می‌دهد.

برای به دست آوردن اندازه یک تصویر دوبعدی، از دستور زیر در متلب استفاده می‌شود:

این دستور، تعداد سطرها (M) و تعداد ستون‌های (N) تصویر را در خروجی نمایش می‌دهد. همچنین، با استفاده از دستور (whos Variable_Name) اطلاعات اضافی مرتبط با یک تصویر دوبعدی نمایش داده خواهد شد. به عنوان نمونه:

نام متغیراندازهبایت‌هامشخصه‌های کلاسی
G768×1024×32359296uint8
نام متغیراندازهبایت‌هامشخصه‌های کلاسی
F768×1024786432uint8

نمایش تصاویر در متلب

با استفاده از تابع (imshow)، امکان نمایش تصاویر در میز‌کار متلب فراهم شده است. قالب دستوری این تابع به شکل زیر است:

در این دستور، متغیر Var_Name یک آرایه تصویری از نوع داده‌ای (uint8) یا double است. نوع داده‌ای uint8، مقادیر اعداد صحیح ذخیره شده در متغیر Var_Name را به مقادیری بین 0 و 255 محدود می‌کند. شایان توجه است که برای یک ماتریس از نوع double، تابع (imshow) انتظار دارد که مقادیر عناصر این ماتریس، بین صفر و یک باشند (مقدار صفر، رنگ سیاه و مقدار 1، رنگ سفید است). هر مقداری که بین 0 و 1 قرار داشته باشد، با رنگ سطح خاکستری (grayscale) نمایش داده می‌شود. مقادیر بزرگتر از 1، با رنگ سفید و مقادیر کوچکتر از 0 نیز با رنگ سیاه نمایش داده خواهند شد. برای اینکه مقادیر عناصر ماتریسِ متناظر با یک تصویر، در بازه صفر و یک قرار بگیرند، می‌توان از روش‌های نرمال‌سازی یا استانداردسازی داده‌ها استفاده کرد.

برای بهبود «کنتراستِ» (Contrast) تصاویری که «محدوده پویای پایینی» (Low Dynamic Range) دارند، می‌توان از دستور زیر استفاده کرد:

تابع ابزار تصویر در متلب

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

B=imread(Penguins_grey.jpg);

imtool(B)

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

پنجره‌ای که در هنگام استفاده از تابع imtool ظاهر می‌شود

با استفاده از ابزار «محاسبه فاصله» (Measure Distance) در تابع (imtool)، این امکان برای کاربر فراهم شده است تا فاصله میان دو نقطه انتخاب شده در تصویر را (به عنوان نمونه، فاصله میان منقارهای دو پنگوئن) محاسبه کنند.

از ابزار محاسبه فاصله در تابع imtool برای محاسبه فاصله میان منقارهای دو پنگوئن موجود در تصویر استفاده شده است.

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

نمایی از پیکسل‌های موجود در یک محدوده مربعی کوچک به همراه اطلاعات کانال‌های رنگ هر کدام از آن‌ها نشان داده شده است.

با استفاده از تابع (subplot)، این امکان فراهم شده است تا چندین تصویر در یک شکل نمایش داده شوند. تابع (subplot) سه پارامتر ورودی دارد: دو پارامتر اول، تعداد سطرهای و ستون‌های لازم برای تقسیم‌بندی یک شکل را مشخص می‌کنند و پارامتر سوم، مشخص می‌کند که کدام زیر قسمت، باید برای نمایش یکی از تصاویر مورد استفاده قرار بگیرد. به عنوان نمونه، دستور (subplot(3,2,3 برای متلب مشخص می‌کند که باید شکل به سه سطر و دو ستون تقسیم‌بندی و از زیر سمت سوم، برای نمایشِ یکی از تصاویر موجود در شکل استفاده شود. برای نمایش دو تصویر (Penguins_RGB.jpg) و (Penguins_grey.jpg) در یک شکل، از دستورات زیر استفاده می‌شود:

A=imread(‘Penguins_grey.jpg’);

B=imread(‘Penguins_RGB.jpg’);

figure

subplot(1,2,1),imshow(A)

subplot(1,2,2),imshow(B)

تصاویر RGB و سطح خاکستری در کنار یکدیگر

ذخیره کردن تصاویر در متلب

برای ذخیره کردن تصاویر در دایرکتوری کنونی متلب، از تابع (imwrite) با قالب دستوری زیر استفاده می‌شود:

imwrite(Var_Name,‘filename’);

این دستور، داده متناظر با تصویر (Var_Name) را در فایلی که به وسیله متغیر (filename) به آن اشاره می‌شود (در دایرکتوری کنونی متلب)، ذخیره می‌کند. تابع (imwrite)، از غالب فرمت‌های تصویری شناخته شده برای ذخیره تصویر نظیر (JPG ،PBM ،BMP ،PGM ،PNG ،PNM ،PPM ،TIFF) پشتیبانی می‌کند. به عنوان نمونه، با استفاده از دستور زیر، یک آرایه 100×100 از مقادیر سطح خاکستری را در یک فایل به نام random و با فرمت PNG ذخیره می‌شود.

F=rand(100);

imwrite(F,‘random.png’)

برای ذخیره‌سازی تصاویر در فرمت JPEG، از قالب دستوری زیر استفاده می‌شود:

imwrite(F,‘filename.jpg’,‘quality’,q)

در این دستور، پارامتر q مقداری صحیح بین 0 و 100 است. از این پارامتر، برای کاهش حجم تصویر استفاده می‌شود. پارامتر q، یک پارامتر «موازنه» (Trade-off) محسوب می‌شود و توازن لازم را میان حجم و کیفیت تصویر ایجاد می‌کند. به عنوان نمونه، با استفاده از دستورات زیر، می‌توان تصویر (Penguins_grey.jpg) را با فرمت JPEG در سه کیفیت 75 (حجم و کیفیت معمولی)، 90 (حجم زیاد و کیفیت بالا) و 10 (حجم کم و کیفیت پایین) ذخیره‌سازی کرد. نکته مهم در این زمینه این است که مقدار 75، مقدار «پیش‌فرض» (Default) برای پارامتر q است.

F=imread(‘Penguins_grey.jpg’);

imwrite(F,’Penguins_grey_75.

jpg’,’quality’,75);

imwrite(F,’Penguins_grey_10.

jpg’,’quality’,10);

imwrite(F,’Penguins_grey_90.

jpg’,’quality’,90);

تصویر با پارامتر کیفیت 75 تصویر با پارامتر کیفیت 90 تصویر با پارامتر کیفیت 10

نمایش اطلاعات تصاویر در متلب

با استفاده از تابع (imfinfo)، فیلدهای اطلاعاتی مرتبط با یک تصویر را می‌توان در یک «متغیر ساختاری» (Structural Variable) ذخیره و در محاسباتی آتی مورد استفاده قرار داد. به عنوان نمونه، با استفاده از دستور زیر، کلیه اطلاعات مرتبط با تصویر (Penguins_grey.jpg) در متغیری به نام (Var_Name) ذخیره می‌شود:

K=imfinfo(‘Penguins_grey.jpg’)

تکنیک‌های پیشرفته پردازش تصویر در متلب

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

  • دقیق کردن و نمایان‌سازی تصاویر (Image Sharpening)
  • «حذف کردن نویز» (Noise Removal)
  • تصحیح لکه‌ها و تار شدگی‌های موجود در تصویر (Deblurring)
  • «استخراج لبه‌ها» (Edge Extraction)
  • باینری کردن تصاویر (Binarization)
  • بهبود کنتراست تصاویر دیجیتالی (Contrast Enhancement)
  • بخش‌بندی تصاویر و برچسب‌گذاری اشیاء موجود در آن‌ها (Object Segmentation and Labeling)

دقیق کردن و نمایان‌سازی ویژگی‌های بارز موجود در تصاویر

در تکنیک‌های دقیق کردن و نمایان‌سازی تصاویر، لبه‌ها و جزئیات ظریف موجود در تصویر، برای مشاهده انسانی تقویت می‌شوند. در این دسته از روش‌ها، کنتراست میان نواحی تاریک و روشن افزایش می‌یابد تا ویژگی‌های بارز موجود در تصویر خودنمایی کنند. به عبارت دیگر، در این دسته از روش‌های پردازش تصویر، «فیلتر‌های بالاگذر» (High-Pass Filter) بر روی تصاویر دیجیتالی اعمال می‌شوند تا مهم‌ترین ویژگی‌های موجود در تصویر (نظیر لبه‌ها)، واضح‌تر شوند.

حذف کردن نویز

روش‌های حذف نویز از تصاویر دیجیتالی، جزء روش‌های پرکاربرد پیش‌پردازشی هستند و معمولا، پیش از اعمال روش‌های پردازش تصویر در متلب مورد استفاده قرار می‌گیرند. معمولا پیش از پردازش تصویر، از این دسته از تکنیک‌ها، برای کاهش میزان نویز در تصویر استفاده می‌شود. روش‌های حذف نویز نقش مهمی در پردازش و تفسیر تصاویر دیجیتالی دارند؛ زیرا، اجازه استخراج اطلاعات مفید را از تصویر می‌دهند. تصاویر حاصل شده از دوربین‌های دیجیتال و فیلم‌های دوربین‌های سنتی، حاوی نویزهای مختلف از منابع متفاوتی هستند. نویزهایی نظیر «نویز فلفل-نمکی» (Salt-and-Pepper Noise) و «نویز گاوسی» (Gaussian Noise)، مهم‌ترین منابع ایجاد نویز در تصاویر هستند.

به طور کلی، نویزها به دو دسته «نویزهای همبسته» (Correlated Noise) و «نویزهای ناهمبسته» (Uncorrelated Noise) تقسیم‌بندی می‌شوند. در بیشتر موارد، مقادیر نویز در پیکسل‌های مختلف تصویر، به شکلی مدل شده‌اند که مستقل از هم هستند و لی از توزیع یکسان تبعیت می‌‎کنند. به این دسته از نویزها، نویزهای ناهمبسته گفته می‌شود. در هنگام انتخاب الگوریتم حذف نویز از تصاویر، باید به نکاتی نظیر «قدرت محاسباتی» (Computing Power) سیستم پردازش تصویر، زمان محاسباتی لازم برای حذف نویزها و از همه مهم‌تر، موازنه میان از بین رفتن جزئیات موجود در تصویر و حذف نویز توجه شود.

تصحیح لکه‌ها و تار شدگی‌های موجود در تصویر

در این دسته از روش‌های پردازش تصویر، «مصنوعات تار شده» (Blurring Artifacts)، نظیر تارشدگی‌های موجود در تصویر که در اثر حرکت پدید آمده‌اند، از تصویر حذف می‌شوند. این فرایندها تکراری هستند و برای رسیدن به جواب مطلوب، ممکن است چندین بار تکرار شوند. به عبارت دیگر، فرایندهای موجود در این دسته از روش‌ها، آنقدر تکرار می‌شوند تا تصویر حاصل، تقریب مناسبی از تصویر اصلی شود. این دسته از روش‌ها، به عنوان فرایندهای پیش پردازشی و معمولا، پیش از پردازش تصویر در متلب، مورد استفاده قرار می‌‌گیرند.

استخراج لبه‌ها از تصاویر

این دسته از روش‌ها که به آن‌ها روش‌های «تشخیص لبه» (Edge Detection) نیز گفته می‌شود، یکی از مهم‌ترین روش‌های پردازش تصویر در متلب محسوب می‌شوند. از روش‌های استخراج لبه، برای جداسازی «اشیاء» (Objects) موجود در تصویر استفاده می‌شود. در روش‌های تشخیص لبه، هدف، شناسایی نقاطی در تصاویر دیجیتال است که در این نقاط، «روشنایی تصویر» (Image Brightness) نسبت به نقاط همسایه، به شدت تغییر می‌کند. روش‌های تشخیص لبه، به دو دسته روش‌های «مبتنی بر جستجو» (Search-based) و «مبتنی بر عبور از صفر» (Zero-Crossing-based) تقسیم‌بندی می‌شوند.

در روش‌های مبتنی بر جستجو، ابتدا قدرت لبه‌ها با استفاده از معیارهایی نظیر «اندازه گرادیان» (Gradient Magnitude) محاسبه می‌شود (معمولا، از طریق محاسبه مشتق مرتبه اول). سپس، با استفاده از تخمین محاسبه شده از «جهت محلی» (Local Orientation) لبه‌ها (جهت گرادیان)، «بیشینه جهت‌دار محلی» (Local Directional Maxima) متناظر با اندازه گرادیان‌ جستجو و لبه‌ها شناسایی می‌شوند.

در روش‌های مبتنی بر عبور از صفر، نقاط عبور از صفر موجود در مشتق مرتبه دوم محاسبه شده از تصویر، جستجو خواهند شد و از این طریق، لبه‌های موجود در تصاویر شناسایی می‌شوند. روش‌هایی نظیر تشخیص لبه Canny، عملگر Prewitt و عملگر Sobel، جزء روش‌های تشخیص لبه مبتنی بر مشتق مرتبه اول هستند.

باینری کردن تصاویر

باینری کردن تصاویر به فرایندی اطلاق می‌شود که در آن، تصاویر سطح خاکستری (greyscale) به تصاویر «سیاه و سفید» (Black and White) تبدیل می‌شوند. استفاده از «حد آستانه» (Threshold)، یکی از محبوب‌ترین تکنیک‌های تبدیل تصاویر سطح خاکستری به تصاویر سیاه و سفید است. این دسته از روش‌ها، جزء ساده‌ترین و البته، پرکاربردترین روش‌های پردازش تصویر در متلب محسوب می‌شوند.

بهبود کنتراست تصاویر دیجیتالی

در روش‌های بهبود کنتراست، با هدف بهتر شدن دید انسانی از تصاویر و همچنین، بهبود فرایندهای پردازش تصویر، تصاویر دیجیتال مورد پردازش قرار می‌گیرند. در این دسته از روش‌های پردازش تصویر در متلب، با در نظر گرفتن سیستم رنگ دستگاه‌های نمایشی یا واسط‌های خروجی تصویر و بهینه‌سازی تصاویر دیجیتال برای نمایش در آن‌ها، ویژگی‌های موجود در تصویر پررنگ‌تر می‌شوند. در روش‌های بهبود کنتراست تصاویر دیجیتالی، «محدوده» (Range) مقادیر کنتراست در تصویر، توسط فرایندهای خاصی تغییر می‌یابد. این دسته از روش‌ها، جزء مهم‌ترین روش‌های پردازش تصویر در متلب به حساب می‌آیند.

بخش‌بندی تصاویر و برچسب‌گذاری اشیاء موجود در آن‌ها

پیاده‌سازی سیستم‌های بخش‌بندی تصاویر و برچسب‌گذاری اشیاء موجود در آن‌ها، پیش‌شرط لازم برای توسعه یک سیستم «بازشناسی و دسته‌بندی اشیاء» (Object Recognition and Classification) محسوب می‌شود. این دسته از روش‌ها، جزء مهم‌ترین روش‌های پردازش تصویر در متلب به حساب می‌آیند. در بخش‌بندی تصاویر دیجیتال، هر کدام از پیکسل‌های موجود در تصویر، توسط دو یا چند برچسب کلاسی، «برچسب‌گذاری» (Labelling) می‌شوند. به عبارت دیگر، بخش‌بندی تصاویر دیجیتال به فرایند تقسیم‌بندی تصویر دیجیتال به چندین بخش یا مجموعه اطلاق می‌شود (به عنوان نمونه، مجموعه‌ای از پیکسل‌ها، که به آن‌ها اَبَر پیکسل نیز گفته می‌شود). هدف این دسته از فرایندها، ساده‌سازی یا تغییر «نمایش کنتراستی» (Contrast Representation) تصویر به مدلی است که تحلیل آن ساده‌تر و بامعنی‌تر باشد. به محض اینکه اشیاء مرتبط بخش‌بندی و برچسب‌گذاری شدند، ویژگی‌های مهم موجود در آن‌ها، جهت دسته‌بندی، مقایسه، خوشه‌بندی یا بازشناسی اشیاء مرتبط، استخراج می‌شوند.

انواع تصاویر

در تولباکس پردازش تصویر در متلب و توابع موجود در آن، چهار نوع تصویر پشتیبانی می‌شود:

  • تصاویر سطح خاکستری ( Grayscale | Grey-level Images)
  • تصاویر باینری (Binary Images)
  • تصاویر شاخص‌گذاری شده (Indexed Images)
  • تصاویر RGB

تصاویر سطح خاکستری

در این دسته از تصاویر، که به آن‌ها تصاویر «تک‌رنگ» (Monochrome) نیز گفته می‌شود، از 8 بیت برای نمایش مقدار شدت رنگ هر پیکسل استفاده می‌شود؛ پیکسل با مقدار شدت برابر با صفر، رنگ سیاه را نمایش می‌دهد. همچنین، پیکسل با مقدار شدت برابر با 255، رنگ سفید خواهد بود. در نهایت، پیکسل‌هایی که مقادیری بین 0 و 255 دارند، طیف‌های خاکستری را نمایش می‌دهند. تصاویر سطح خاکستری، توسط آرایه‌های دوبعدی و مقادیر پیکسل‌ها نیز، توسط یک عدد 8 بیتی نمایش داده می‌شوند.

تصاویر باینری

در این دسته از تصاویر، از تنها 1 بیت برای نمایش مقدار پیکسل‌ها استفاده می‌شود؛ مقدار 1، به معنای رنگ سفید و مقدار 0، به معنای رنگ سیاه. تصاویر سیاه و سفید نیز توسط آرایه‌های دوبعدی نمایش داده می‌شوند. حجم کم این دسته از تصاویر، مهم‌ترین مزیت آن‌ها محسوب می‌شود.

تصاویر شاخص‌گذاری شده

این تصاویر، ماتریسی از مقادیر «صحیح» (Integer) هستند. در این ماتریس، هر مقدار صحیح به یک سطر خاص از مقادیر RGB، در یک ماتریس («نقشه» (Map)) ثانویه به نام «نقشه رنگ» (Colour Map) اشاره دارد.

تصاویر RGB

در تصاویر RGB، هر پیکسل رنگی توسط یک سه‌تایی مشخص کننده مؤلفه‌های قرمز (R)، سبز (G) و آبی (B) آن پیکسل، نمایش داده می‌شود. در تولباکس پردازش تصویر در متلب و توابع آن، هر تصویر رنگی RGB متناظر با یک آرایه سه‌بعدی به ابعاد MxNx3 است. در اینجا، M بیانگر ارتفاع و N، نشان دهنده پهنای تصویر است. همچنین، عدد 3 بیانگر تعداد مؤلفه‌های رنگی تصویر RGB است. در تصاویر RGB از نوع double، محدوده مقادیر شدت پیکسل‌ها، بازه [0 و 1] است. در تصویر RGB از نوع Unit8 و Unit16، محدوده مقادیر به ترتیب برابر با بازه [0 و 255] و [0 و 65535] است.

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

کیفیت تصویر

«کیفیت تصویر» (Image Quality) در فرایند پردازش تصویر، بر حسب مفاهیمی نظیر «تفکیک مکانی» (Spatial Resolution) و کوانتیزه‌سازی تعریف می‌شود.

تفکیک مکانی یا دقت پیکسلی تصویر

منظور از تفکیک مکانی، «چگالی پیکسلی» (Pixel Density) در تصویر است. هر چقدر که تفکیک مکانی یک تصویر بیشتر باشد، بدین معنی است که پیکسل‌های بیشتری برای نمایش تصویر مورد استفاده قرار گرفته شده است. تفکیک مکانی یک تصویر، به طور کیفی، بر اساس معیاری به نام «نقطه در اینچ» (Dot per Inch | DPI) بیان می‌شود.

با استفاده از تابع (imresize)، می‌توان قدرت تفکیک یا به عبارت دیگر، دقت پیکسلی یک تصویر را تغییر داد. به عنوان نمونه، با استفاده از دستور زیر، ابعاد یک تصویر به نصف کاهش پیدا می‌کند. ویژگی مهم تابع (imresize) این است که در ماتریس‌های چندبعدی متناظر با تصویر (نظیر تصاویر RGB که سه‌بعدی هستند)، به طور پیش‌فرض، تنها دو بعد اول ماتریس تغییر پیدا می‌کنند.

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

با استفاده از تابع (imresize)، تغییرات دلخواه در قدرت تفکیک یا دقت پیکسلی تصاویر قابل اعمال است. به عنوان نمونه، دستور زیر قدرت تفکیک یا دقت پیکسلی تصویر را نصف می‌کند ولی تغییری در ابعاد تصویر ایجاد نمی‌کند.

mresize(imresize(x,1/2),2)

همچنین، خط دستوری زیر، قدرت تفکیک یا دقت پیکسلی تصویر را به اندازه یک چهارم ($$\frac { 1 } { 4 }$$) تغییر می‌دهد.

imresize(imresize(x,1/4),4)

برای واضح‌تر شدن این مطلب، از تابع (imresize) برای انجام یک سری تغییرات روی تصویر (Penguins_grey.jpg) استفاده می‌شود. به عبارت دیگر، قرار است با استفاده از این تابع، قدرت تفکیک یا دقت پیکسلی تصویر به مقدار دلخواه تغییر داده شود.

دستور زیر، قدرت تفکیک یا دقت پیکسلی تصویر (Penguins_grey.jpg) را به نصف تغییر می‌دهد.

A=imread(‘Penguins_grey.jpg’);

A1=imresize((imresize(A,1/2)),2);

imshow(A1)

تصویری که نصف قدرت تفکیک یا دقت پیکسلی تصویر اصلی را دارد ولی اندازه آن با تصویر اصلی برابر است.

A=imread(‘Penguins_grey.jpg’);

A2=imresize((imresize(A,1/4)),4);

imshow(A2)

تصویر با (1/4) قدرت تفکیک یا دقت پیکسلی تصویر اصلی

A=imread(‘Penguins_grey.jpg’);

A3=imresize((imresize(A,1/8)),8);

imshow(A3)

تصویر با (1/8) قدرت تفکیک یا دقت پیکسلی تصویر اصلی

کوانتیزه‌سازی تصویر

«کوانتیزه‌سازی تصویر» (Image Quantisation) را می‌توان در قالب یک فرایند «نگاشت» (Mapping) توصیف کرد که در آن، مجموعه‌ای از نقاط داده‌ای (مجموعه‌ای از پیکسل‌ها که در یک محدوده سطح خاکستری مشخصی قرار دارند) به یک نقطه (یک مقدار سطح خاکستری خاص) نگاشت می‌شوند. برای «بازکوانتیزه‌سازی» (Requantization) تصویر در متلب، می‌توان از تابع (grayslice) در تولباکس پردازش تصویر در متلب استفاده کرد. با استفاده از مجموعه دستورات زیر، سطوح کوانتیزه‌سازی تصویر (Penguins_grey.jpg) به 64 کاهش پیدا می‌کند و تصویر حاصل در خروجی نمایش داده می‌شود.

A=imread(‘Penguins_grey.jpg’);

B=grayslice(A,64);

imshow(B,gray(64))

کاهش سطوح کوانتیزه‌سازی تصویر به 64

مجموعه دستورات زیر، سطوح کوانتیزه‌سازی تصویر (Penguins_grey.jpg) را به 8 کاهش و تصویر حاصل را در خروجی نمایش می‌دهند.

A=imread(‘Penguins_grey.jpg’);

B=grayslice(A,8);

imshow(B,gray(8))

کاهش سطوح کوانتیزه‌سازی تصویر به 8

هیستوگرام تصویر

«هیستوگرام» (Histogram) یک تصویر سطح خاکستری، «تناوب» (Frequency) رخدادِ مقادیر «سطوح خاکستری» (Grey Levels) در تصویر را نمایش می‌دهد. هیستوگرام یک نمایش گرافی است که تعداد دفعات رخدادِ هر یک از مقادیر سطح خاکستری موجود در تصویر را بیان می‌کند. در یک تصویر تاریک، سطوح خاکستری (و در نتیجه، هیستوگرام تصویر) بیشتر در حد پایین مقادیر (نزدیک به صفر) تجمع پیدا می‌کنند. در حالی که در تصویری به شکل یکنواخت روشن است، سطوح خاکستری (هیستوگرام تصویر) بیشتر در حد بالای مقادیر (نزدیک به 255) تجمع پیدا می‌کند. در تصاویری که از «کنتراست» (Contrast) خوبی برخوردارند، سطوح خاکستری (هیستوگرام تصویر) تقریبا به خوبی در محدوده تعریف شده برای مقادیر سطح خاکستری (0 تا 255) پخش شده‌اند.

با استفاده از تابع (imhist)، هیستوگرام یک تصویر در تولباکس پردازش تصویر در متلب نمایش داده می‌شود. به عنوان نمونه، با استفاده از دستورات زیر، هیستوگرام تصویر (Penguins_grey.jpg) در خروجی نمایش داده خواهد شد.

A=imread(‘Penguins_grey.

jpg’);

figure(1),imhist(A);

تولید هیستوگرام تصویر پنگوئن‌ها با استفاده از تابع (imhist)

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

  • روش Histogram Stretching
  • روش Histogram Shrinking
  • روش Histogram Sliding

روش Histogram Stretching

در این روش، که به آن «برش ورودی» (Input Cropping) نیز گفته می‌شود، از یک تبدیل خطی برای «کشش» (Stretch) بخش‌هایی از هیستوگرام اصلی تصویر استفاده می‌شود. هدف از این عملیات، گسترش دادن محدوده «غیر صفر» (Non-Zero) مقادیر شدتِ پیکسل‌های تصویر به تمامی سطوح سطح خاکستری است.

در صورتی که هیستوگرام یک تصویر، در مرکز محدوده تعریف شده برای مقادیر سطح خاکستری (0 تا 255)، تجمع پیدا کرده باشد، با استفاده از تابع (imadjust) امکان کشش یا Stretch بخش‌هایی از هیستوگرام آن تصویر وجود دارد. با استفاده از قالب دستوری زیر، عملیات کشش هیستوگرام یک تصویر، در تولباکس پردازش تصویر در متلب انجام می‌شود. در این قالب دستوری، مقادیر پارامترهای d ،c ،b ،a باید بین 0 و 1 باشند.

نحوه کشش یا Stretch بخش‌هایی از هیستوگرام توسط تابع (imadjust)

imadjust(Var_Name,[a,b],[c,d])

به عنوان نمونه، دستور زیر، مقادیر سطح خاکستری تصویر را معکوس می‌کند و از این طریق، تصاویری مشابه «فیلم عکاسی» (Photographic Negative) تولید می‌شود.


imadjust(Var_Name,[],[1,0])

راه حل جایگزین برای کشش یا Stretch بخش‌هایی از هیستوگرام تصویر، استفاده از روش «یکنواخت‌سازی هیستوگرام» (Histogram Equalization) یا تابع (histeq) در تولباکس پردازش تصویر در متلب است. این روش، بر خلاف روش Histogram Stretching که نیازمند تعیین دستی پارامترها توسط کاربر است، به طور خودکار انجام می‌شود. نحوه استفاده از تابع (histeq) و نمایش هیستوگرام اصلاح شده در ادامه آمده است:


A=imread(‘Penguins_grey.jpg’);

HE=histeq(A);

imshow(HE),figure,imhist(HE)

کشش یا Stretch بخش‌هایی از هیستوگرام تصویر پنگوئن‌ها توسط تابع (imadjust)

روش Histogram Shrinking

در این روش، که به آن «برش خروجی» (Output Cropping) نیز گفته می‌شود، هیستوگرام اصلی تصویر به گونه‌ای تغییر پیدا می‌کند که محدوده فعلی مقادیر سطح خاکستری در تصویر، به محدوده سطح خاکستری باریک‌تری فشرده‌سازی می‌شود. برای چنین کاری، از تابع (imadjust) در تولباکس پردازش تصویر در متلب استفاده می‌‌شود.

روش Histogram Sliding

در روش Histogram Sliding، یک «مقدار ثابت روشنایی» (Constant Brightness Value) به تمامی پیکسل‌های موجود در تصویر اضافه یا از تمامی آن‌ها کسر می‌شود. در تصاویر حاصل، ویژگی‌های کنتراستی بهتر از تصویر اصلی است؛ با این حال، سطح روشنایی آن‌ها، نسبت به میانگین روشنایی تصویر اصلی، بیشتر یا کمتر است. در هنگام استفاده از روش Histogram Sliding در متلب، باید اطمینان حاصل شود که مقادیر پیکسل‌ها، از محدوده مجاز تعریف شده برای مقادیر سطح خاکستری (0 تا 255) فراتر نروند. در مجموعه دستورات زیر، از روش Histogram Sliding برای بهبود تصویر (Penguins_grey.jpg) استفاده شده است.

A=imread(‘Penguins_grey.jpg’);

imshow(A),title(‘Original Image’);

B=im2double(A);

bright_add=0.2;

imhist(A),title(‘Original Histogram’);

C=B+bright_add;

imshow(C),title(‘New Bright Image’);

imhist(C),title(‘New Histogram’);

در این مثال، تصویر اصلی، از طریق اضافه کردن مقدار ثابت ۰٫۲ به تمامی پیکسل‌های موجود در تصویر، روشن‌تر شده است.

تصویر اصلی هیستوگرام تصویر اصلی تصویر تغییر یافته هیستوگرام تصویر تغییر یافته

روش آستانه‌گذاری در تولباکس پردازش تصویر در متلب

از روش «آستانه‌گذاری» (Thresholding)، برای حذف اطلاعات غیر ضروری و تمرکز روی اطلاعات اساسی در تصویر استفاده می‌شود. همچنین، در صورتی که اشیاء موجود در تصویر و «پس‌زمینه» (Background) سطوح خاکستری مشابهی داشته باشند، از این روش، برای نمایان کردن جزئیات مخفی در تصویر استفاده می‌شود. روش‌های آستانه‌گذاری، به دو دسته روش‌های «تک آستانه‌گذاری» (Single Thresholding) و «آستانه‌گذاری دوگانه» (Double Thresholding) تقسیم‌بندی می‌شوند. روش‌های تک آستانه‌گذاری و آستانه‌گذاری دوگانه، در تولباکس پردازش تصویر در متلب پیاده‌سازی شده‌اند.

روش‌ تک آستانه‌گذاری

در این روش، تصاویر سطح خاکستری از طریق مراحل زیر به تصاویر باینری (سیاه و سفید) تبدیل می‌شوند:

  • ابتدا، یک سطح خاکستری، نظیر T، در تصویر اصلی انتخاب می‌شود. به این سطح خاکستری، حد آستانه گفته می‌شود.
  • سپس، تمامی پیکسل‌های تصویر، بسته به اینکه مقدار سطح خاکستری آن‌ها از حد آستانه کمتر یا بیشتر باشند، سیاه یا سفید می‌شوند.

آستان‌گذاری، یکی از مراحل اصلی روش‌های «بخش‌بندی تصاویر» (Image Segmentation) است. در این دسته از روش‌‌ها، کاربر تمایل دارد تا اشیاء را از پس‌زمینه جدا کند. برای تبدیل یک تصویر سطح خاکستری (نظیر F)، به یک تصویر باینری، با استفاده از حد آستانه 100 از دستور زیر استفاده می‌شود.

در ادامه، تصویر سطح خاکستری (Penguins_grey.jpg)، با استفاده از حد آستانه 70، به تصویر سیاه و سفید تبدیل می‌شود.

A=imread(‘Penguins_grey.jpg’);

imshow(A),figure,imshow(A>70)

تصویر اصلی تصویر حاصل پس از آستانه‌گذاری

علاوه بر این، دستوری در تولباکس پردازش تصویر در متلب وجود دارد که به کاربران اجازه می‌دهد تا تصاویر سطح خاکستری و رنگی را به تصاویر باینری تبدیل کنند. برای این کار از تابع (im2bw) استفاده می‌شود. در این تابع، آرگومان level مقداری بین 0 و 1 دارد.

روش آستانه‌گذاری دوگانه

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

دقیق کردن و نمایان‌سازی ویژگی‌های بارز موجود در تصاویر (Image Sharpening)

به این دسته از روش‌ها، روش‌های Image Sharpening نیز گفته می‌شود. این روش‌ها، ابزارهایی قدرتمند برای بهتر جلوه دادن «بافت» (Texture) در تصاویر هستند. این روش‌ها قادر هستند کیفیت تصویر را، حتی بهتر از امکانات سخت‌افزاری موجود در دوربین‌های گران قیمت بازار بهبود ببخشند. در بسیاری از نرم‌افزارهای  Image Sharpening، از تکنیکی به نام Unsharp Masking جهت نمایان‌سازی ویژگی‌های بارز موجود در تصاویر (به ویژه بافت‌ها) استفاده می‌شود. در این روش، تفاوت روشنایی در راستای لبه‌های درون یک تصویر، پررنگ‌تر می‌شود. شایان توجه است که روش‌های Image Sharpening قادر به بازسازی تصویر ایده‌آل نیستند، با این حال، لبه‌های موجود در تصاویر تغییر یافته به مراتب پررنگ‌تر از تصاویر اصلی خواهند بود.

از تابع (imsharpen)، برای دقیق کردن و نمایان‌سازی ویژگی‌های شاخص تصاویر (در تولباکس پردازش تصویر در متلب) استفاده می‌شود.

در نتیجه اجرای چنین دستوری، نسخه بهبود بهبود یافته از تصاویر ورودی (RGB یا سطح خاکستری)، تولید می‌شود. در تصاویر جدید تولید شده، برخی از ویژگی‌‌های تصویر نظیر لبه، پررنگ‌تر شده‌اند. به عنوان نمونه، با استفاده از دستورات زیر، ویژگی‌های شاخص موجود در تصویر نمایان‌تر می‌شوند.

a=imread(‘Image_sharpen.jpg’);

imshow(a)

=imsharpen(a);

figure,imshow(b)

تصویری که قرار است Sharp شود تصویر حاصل از عملیات Image sharpening

همچنین، این امکان فراهم شده است تا پارامترهای «شعاع» (Radius) و «مقدار» (Amount) در تابع (imsharpen)، توسط کاربر مقداردهی شوند.

b=imsharpen(a,’Radius’,

4,’Amount’,2);

figure,imshow(b)

تصویر حاصل از عملیات Image sharpening و مشخص کردن مقادیر مناسب برای پارامترهای Radius و Amount

همان طور که در این شکل مشخص است، ویژگی‌های تصویر بالا (نظیر اشیاء و لبه‌های آن‌ها) نسبت به دو تصویر قبلی، به مراتب پررنگ‌تر شده است و به شکل بهتری در تصویر نمایان شده‌اند؛ به گونه‌ای که تمایز قائل شدن میان اشیاء در این تصویر به مراتب راحت‌تر است.

جمع‌بندی

پردازش تصویر در متلب و توابع موجود در آن، مجموعه وسیعی از روش‌ها، الگوریتم‌ها و تکنیک‌ها را شامل می‌شوند. فرایندهایی نظیر Image Sharpening، حذف نویز، Deblurring، استخراج لبه‌ها، باینری‌سازی تصاویر، بهبود کنتراست تصاویر، بخش‌بندی و برچسب‌گذاری اشیاء در تصویر، از جمله مهم‌ترین فرایندهای بنیادی پردازش تصویر در متلب هستند که تقریبا در تمامی تکنیک‌ها و الگوریتم‌های پردازش تصویر مورد استفاده قرار می‌گیرند. در این مطلب سعی شده است تمامی این تکنیک‌ها، به همراه ارائه مثال و کدهای پیاده‌سازی در متلب شرح داده شوند. مطالعه این مطلب، به تمامی کسانی که به حوزه پردازش تصویر دیجیتال علاقه‌مند هستند، توصیه می‌شود.

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

مرتضی جادریان (+)

«مرتضی جادریان»، دانشجوی مقطع دکتری مهندسی کامپیوتر گرایش هوش مصنوعی است. او در زمینه سیستم‌های هوشمند، به ویژه سیستم‌های هوشمند اطلاعاتی، روش‌های یادگیری ماشین، سیستم‌های دانش محور و محاسبات تکاملی فعالیت دارد.

بر اساس رای 30 نفر

آیا این مطلب برای شما مفید بود؟

آیا این مطلب برای شما مفید بود؟



سایر منابع و مطالب مرتبط با توابع پردازش تصویر در متلب [ برای قرار گرفتن در این لیست از صفحه تماس با ما اقدام کنید ]
blog.faradars.org .
پردازش تصویر در متلب — راهنمای جامع | مجله فرادرس

Aug 17, 2019 — در این مطلب، با مبحث پردازش تصویر در متلب و توابع تعبیه شده در متلب آشنا خواهید شد. همچنین، مهم‌ترین فرایندهای پردازش مقدماتی و پیشرفته ... ادامه...


porojeamadematlab.ir .
دستورات پردازش تصویر در متلب | انجام پروژه متلب |پروژه متلب ...

از توابع (imshow) ،(imread) و (imwrite) در متلب، برای خواندن تصاویر در محیط متلب، ... تابع «ابزار تصویر» (Image Tool) که در تولباکس پردازش تصویر در متلب ... ادامه...


barnamenevis.org .
آموزش توابع اولیه پردازش تصویر در Matlab - برنامه نویس

Jul 8, 2019 — آموزش توابع اولیه پردازش تصویر در Matlab. تابع imread() هدف : هدف از این تابع خواندن تصویر از فایل می باشد. نحوه استفاده : imread(مسیر فایل). ادامه...


iran-matlab.ir .
پردازش تصویر در متلب - ایران متلب

یک عکس هم از گروه بینایی ماشین شرکت mathworks که برنامه نویسان توابع پردازش تصویر متلب هستند را براتون پیدا کردم که در قسمت زیر میتونید آنها ببینید :. ادامه...


howsam.org .
دستورات پردازش تصویر در متلب (مجموعه کامل دستورات ... - هوسم

Jul 31, 2016 — در این پست طولانی سعی می‌کنیم به تدریج تمامی توابع موجود در تولباکس پردازش تصویر متلب را به صورت دسته‌بندی شده به فارسی توضیح دهیم. ادامه...


sabzdanesh.com .
پردازش تصویر در متلب (بخش دوم) | سبز دانش

در این قسمت ما قصد داریم تا با پردازش تصویر در متلب آشنا شویم. — خواندن ... تبدیل تصاویر. با استفاده از توابع زير می توان نوع يک تصویر را تغییر داد:. ادامه...


mathsoft.gigfa.com .
پردازش تصویر در متلب – نرم افزار ریاضی

Jun 19, 2016 — پردازش تصویر در علوم و فنون مختلف کاربرد دارد که میتوان کاربرد در رباتیک ... خواندن تصویر در محیط متلب با استفاده از تابع imread و نمایش آن توسط ... باز و بسته کردن به ترتیب از توابع imopenوimcloseاستفاده میکنیم. ادامه...


shopmatlab.ir .
پردازش تصویر در متلب (قسمت سوم) | مرکز تخصصی کدنویسی ...

Jul 9, 2018 — پردازش تصویر در متلب (قسمت سوم). در بخش های اول و دوم از مبحث پردازش تصویر در متلب ، با تعدادی از توابع و دستورات کار با تصاویر در این نرم ... ادامه...


shopmatlab.ir .
پردازش تصویر در متلب (قسمت چهارم) | مرکز تخصصی کدنویسی ...

Jul 12, 2018 — در قسمت های قبلی از مبحث پردازش تصویر در متلب با چند تا از توابع پر کاربرد در این حوزه آشنا شدیم و با مثال های مختلف ، طرز کار آنها و تاثیر آنها ... ادامه...


beyamooz.com .
انطباق تصاویر در متلب و پردازش تصویر - بیاموز

در این فصل، به تشریح و توضیح قابلیت انطباق تصاویر(image registration) در نرم افزار متلب می پردازیم. انطباق دادن یک تصویر در نرم افزار متلب. تعریف: به ... ادامه...


research.iaun.ac.ir .
ﭘﺮدازش ﺗﺼﺎوﻳﺮ دﻳﺠﻴﺘﺎﻟﻲ ﻫﺎدي ﺳﻴﺪﻋﺮﺑﻲ

Nov 30, 2010 — Matlab. ﻣﻌﺮﻓﯽ ﻣﯽ ﺷﻮﻧﺪ . •. ﺑﺎ وارد ﮐﺮدن دﺳﺘﻮر help images. دﺳﺘﻮرات ﺟﻌﺒﻪ اﺑﺰار ﭘﺮدازش ﺗﺼﻮﻳﺮ. ﺑﺎ ﻳﮏ ﺗﻮﺿﻴﺢ ﻣﺨﺘﺼﺮ ﻟﻴﺴﺖ ﻣﯽ ﺷﻮﻧﺪ . ﺑﺮاﯼ ﺗﻮﺿﻴﺢ ﺑﻴﺸﺘﺮ ﺑﺮاﯼ هﺮ دﺳﺘﻮر،. ﻣﯽ ﺗﻮان از. ادامه...


www.mojsazan.com .
آموزش توابع اولیه پردازش تصویر در متلب- فصل اول - موج سازان

Feb 24, 2019 — خروجی دستور : [عکس: imshow_.png] آموزش توابع پردازش تصویر در متلب-فصل اول رمز فایل: behsanandish.com مشاهده آموزش کامل توابع پردازش ... ادامه...


www.dabirbartar.com .
Image Processing in Matlab | دبیر برتر برترین در صنعت آموزش

Oct 12, 2018 — Image Processing Matlab Toolbox. در این بخش سعی می‌کنیم به بررسی تمامی توابع موجود در تولباکس پردازش تصویر متلب رو به صورت دسته‌بندی ... ادامه...


beyamooz.com .
محاسبه ی تصاویر در پردازش تصویر - بیاموز

عملگرهای محاسباتی متلب و توابع محاسباتی جعبه ابزار پردازش تصویر، از قواعد زیر برای محاسبه بر روی اعداد صحیح استفاده می کنند: مقادیری که از محدوده ی، نوع مورد ... ادامه...


hamyarprozhe.ir .
آموزش متلب - پردازش تصویر بخش سوم | همیار پروژه | پردازش ...

May 19, 2020 — با استفاده از تابع fspecial می توانیم فیلتر های معمول در پردازش تصویر را برای استفاده با تابع filter2 ایجاد نماییم . روش استفاده از این توابع ... ادامه...


www.kelidestan.com .
پردازش تصویر و کار با عکس ها، در متلب - کلیدستان

آموزش های فارسی زبان : آموزش متلب (MATLAB) ، آموزش HTML ، آموزش PHP ، آموزش اندروید (Android) و سایر آموزش ها . ادامه...


rayanehmag.net .
پردازش تصویر در متلب – Image Processing with MATLAB ...

May 23, 2015 — این مقاله به آموزش استفاده از متلب در پردازش تصویر اختصاص دارد. آشنایی اولیه با متلب مورد نیاز است (باید نحوه استفاده از ماتریس ها و نحوه نوشتن ... ادامه...


bmengineer.ir .
آموزش شماره سه کلاس ما:اعمال توابع مختلف پردازش تصویر بر ...

Jun 25, 2019 — :Read Image. در این قسمت تنها دستورات توسط نرم افزار متلب فراخوانی می شود که جهت خواندن تصویر می باشد ، به آدرس محل تصویر فراخوانی تصویر ... ادامه...


ce.sharif.edu .
3: اﺑﺰار اﺻﻠﻲ ﭘﺮدازش ﺗﺼﻮﯾﺮ ﴰﺎره ﺗﮑﻠﯿﻒ

اﺑﺰار ﭘﺮدازش ﺗﺼﻮﯾﺮ ﺑﺮاي اﻓﺰاﯾﺶ ﮐﯿﻔﯿﺖ ﯾﺎ اﳚﺎد ﺑﻌﻀﻲ ﺟﻠﻮه ﻫﺎ اﳚﺎد ﺷﺪه. اﺳﺖ . در اﯾﻦ آزﻣﺎﯾﺶ، ﴰ ... -2. -4. ﭘﯿﺪا ﮐﺮدن ﺗﻮاﺑﻊ. MATLAB. ﺑﺮاي ﭘﺮدازش ﺗﺼﻮﯾﺮ. ﺑﺮاي اﯾﻨﮑﻪ ﻣﻄﻤﺌﻦ ﺷﻮﯾﺪ ﺟﻌﺒﻪ اﺑﺰار ﭘﺮدازش. ادامه...


artificial.ir .
فایل آموزش پردازش تصویر در متلب - Artificial Intelligence - هوش ...

Sep 19, 2009 — بسیتاری از عملیات رایج و حتی بعضی از عملیات خاص و پیچیده پردازش تصویری نیز به سادگی در قالب توابع آماده تدارک دیده شده است. ادامه...


profs.hsu.ac.ir .
ﻓﺼﻞ ﺳﯿﺰدﻫﻢ ﭘﺮدازش ﺗﺼﻮﯾﺮ

در ﻣﺘﻠﺐ ﺗﺼﺎوﯾﺮ ﺑﺼﻮرت ﻣﺎﺗﺮﯾﺴﻬﺎي دو. ، ﺳﻪ و ﯾﺎ ﭼﻬﺎرﺑﻌﺪي ﺗﻌﺮﯾﻒ ﻣﯽ ﺷﻮﻧﺪ . □. ﮐﯿﻔﯿﺖ ﺗﺼﻮﯾﺮ ... ﺗﻮاﺑﻊ ﺧﻮد ﻣﺘﻠﺐ، ﺳﺎﯾﺮ ﻋﻤﻠﯿﺎت رﯾﺎﺿﯽ ﺑﺮ روي ﻧﻮع uint8 ... و ﺑﻪ ﻫﻤﺎن ﻧﺴﺒﺖ ﻫﻢ ﺑﻪ زﻣﺎن ﭘﺮدازش ﺑﯿﺸﺘﺮي ﻧﯿﺎز دارد. ادامه...


sigmaland.ir .
پروژه آموزش کامل پردازش تصویر در متلب - سیگمالند

پروژه آموزش پردازش تصویر با نرم افزار متلب- انواع فیلتر ها، تبدیل فوریه، ذخیره ... از این تولباکس ها، تولباکس پردازش تصویر در متلب است که مجموعه ای از توابع ... ادامه...


www.ketabrah.ir .
دانلود کتاب پردازش تصویر دیجیتال در MATLAB - بهرام عادلیان ...

کتاب پردازش تصویر دیجیتال در متلب (Digital Image Processing in Matlab) برای دانشجویان و کلیه علاقه‌مندان به علم پردازش تصاویر دیجیتال نوشته شده است. این اثر ... ادامه...


imageyar.ir .
وب سایت تخصصی پردازش تصویر ~ آموزش و پیاده سازی ...

آموزش و پیاده سازی تکنیک های پردازش تصویر- مشاوره و مشارکت در پروژه های آموزشی ... در متلب تبدیل تصویر خاکستری به باینری با استفاده از روش ترکیب توابع ... ادامه...


trn.ictrc.ac.ir .
دوره آموزش پردازش تصویر با متلب - دپارتمان آموزش - پژوهشکده ...

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



ارسال نظر

نام


ایمیل


نظر