آموزش الکترونیکآموزش پردازش تصویرآموزش متلب

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

سلام. پردازش تصویر در متلب چگونه است؟ آموزش کامل را آماده کردیم.

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

تصور کنید که دوربین خود را روی بعضی از اجسام زوم می‌کنید و دوربین نام آن جسم را به شما می گوید، بله، لنز های گوگل در تلفن های هوشمند اندروید با استفاده از پردازش تصویر همان کار را انجام می دهند. این به کامپیوتر یک بینایی می دهد تا چیز ها را شناسایی کند و بر این اساس اقدام کند. پردازش تصویر کاربرد های زیادی دارد مانند شناسایی چهره، اثر انگشت، دستگاه های واقعیت افزوده، تشخيص کاراکتر های نوری، اسکن بارکد و موارد دیگر. تعداد زیادی نرم‌افزار برای پردازش تصویر موجود است، در میان آنها MATLAB مناسب ترین برای شروع است.

نرم افزار MATLAB می تواند بسیاری از عملیات پردازش تصویر پیشرفته را انجام دهد، اما برای شروع پردازش تصویر در MATLAB، در اینجا ما برخی از اقدامات اولیه مانند RGB to Gray (عبارت RGB مخفف سه رنگ Red (قرمز)، Green (سبز)، Blue( آبی) است که برای کارهایی که قرار است در مانیتور به نمایش در آیند از آن استفاده می شود)، چرخش تصویر، تبدیل باینری و … را توضیح خواهیم داد.

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

فیلم کامل آموزش این مقاله را میتوانید در انتهای صفحه مشاهده کنید.

همچنین می توانید با استفاده از وظایفی که در این آموزش بیان شده است، برنامه های خودکار برای حذف نویز(noise)، وضوح تصویر و فیلترینگ تهیه کنید. در MATLAB، مثل همیشه، دو روش برای انجام هر الگوریتم پردازش تصویر، وجود دارد. یکی این است که مستقیما فرمان را در ویرایشگر / پنجره فرمان وارد کنید و دیگری ایجاد یک واسط گرافیکی کاربر است.

در اینجا، ما هردو روش، انجام اقدامات اولیه پردازش تصویر را در MATLAB، به شما نشان خواهیم داد.

پردازش تصویر با پنجره ویرایشگر متلب

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

a = imread('F:\IRENX\image processing using matlab\camerman.jpg');
subplot(2,3,1);
imshow(a);

b = rgb2gray(a);
subplot(2,3,2);
imshow(b);

c = im2bw(a);
subplot(2,3,3);
imshow(c);

d = imadjust(b);
subplot(2,3,4);
imshow(d);

e = a;
e=rgb2gray(e);
subplot(2,3,5);
imhist(e);

imfinfo('F:\circuit digest\image processing using matlab\beard-man.jpg')

[height, width, colour_planes] = size(a)

%colormap('spring')

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

در متغیر ‘a’ ، ما با استفاده از فرمان imread(‘filename’) تصویر را وارد می کنیم و سپس طرح ردیف “2” و ستون “3” را با استفاده از subplot(row, column, position) و نمایش تصویر وارد شده در موقعیت “1” می سازیم. برای نمایش تصویر، ما از فرمان imshow(‘filename’) استفاده می کنیم.

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

در زیر، چند دستور برای انجام برخی پردازش های اساسی در تصویر بارگذاری شده وجود دارد :

  • در متغیر b، ما تصویر RGB را با استفاده از فرمان (rgb2gray('filename و نمایش آن در طرح، درموقعیت 2، به عکس سیاه و سفید تبدیل می کنیم.
  • در متغیر “c” ، ما  تصویر را با استفاده از فرمان rgb2gray(‘filename’) و نمایش آن در طرح، در موقعیت “3” به تصویر دودویی یا میتوانید بگویید در فرمت 0 (سیاه) یا 1 (سفید) تبدیل می کنیم.
  • در متغیر “d” ، ما مقادیر شدت تصویر سیاه و سفید را با استفاده از فرمان imadjust(‘filename’) و نمایش آن در طرح، در موقعیت “4” تطبیق میدهیم یا نقشه برداری میکنیم.
  • در متغیر “e” ، ما داریم هیستوگرام عکس سیاه سفید را با استفاده از فرمان imhist(‘filename’) و نمایش آن در طرح، در موقعیت “5” طرح ریزی میکنیم. برای ترسیم هیستوگرام ، همیشه باید تصویر را به مقیاس سیاه سفید تبدیل کنید و بعد می توانید هیستوگرام آن فایل گرافیکی را ببینید.
  • فرمان Imfinfo(‘filename with location’) برای نمایش اطلاعات راجب فایل گرافیکی استفاده می شود.
  • فرمان [height, width, colour_planes] = size(‘filename’) برای نمایش سایز و رنگ صفحه های یک فایل گرافیکی خاص استفاده می شود.
  • فرمان colormap('spring') برای تغییر نوع colormap استفاده می شود. در اینجا در کد من، این فرمان را به عنوان نظر (comment) تنظیم کرده ام، اما شما می توانید با حذف علامت درصد، از آن استفاده کنید. تعداد زیادی از انواع رنگ ها در MATLAB وجود دارد مانند ؛ Jet, HSV, Hot, Cool, Summer, Autumn, Winter, Gray, Bone, Copper, Pink, Lines and spring.

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

پردازش تصویر با GUI در MATLAB

ایجاد رابط گرافیکی کاربر MATLAB برای پردازش تصویر

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

guide

یک پنجره باز می شود ، سپس رابط گرافیکی کاربر جدید را مطابق تصویر زیر انتخاب کنید

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

پردازش تصویر با پنجره ویرایشگر متلب

حال باید تعداد دکمه های فشار را انتخاب کنیم (هر دکمه وظیفه متفاوتی را انجام می دهد) و یک محور برای نمایش تصویر

برای تغییر اندازه و یا تغییر شکل دکمه های فشار  یا محور ها ، کافیست روی آن کلیک کنید و گوشه های دکمه را بکشید.  با کلیک بر روی هر یک از این موارد ، می توانید رنگ ، رشته ، برچسب و گزینه های دیگر دکمه را تغییر دهید.  پس از سفارش سازی اینگونه به نظر می رسد.

پردازش تصویر با GUI در MATLAB

تغییر اندازه کادر و دکمه ها در متلب

می توانید دکمه ها را مطابق انتخاب خود تنظیم کنید.وقتی این کار را ذخیره می کنید ، یک کد در پنجره ویرایشگر MATLAB ایجاد می شود.  كد تولید شده را ویرایش كنید تا وظیفه دکمه های فشار مختلف را تنظیم كنید.  در زیر کد MATLAB را ویرایش کرده ایم.

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

کد کامل MATLAB  برای پردازش تصویر با استفاده از MATLAB GUI ،  در پايان اين پروژه آورده شده است. علاوه بر این ما در اینجا فایل GUI (.fig)  و فایل کد (m.)  را برای بارگیری قرار داده ایم ، با استفاده از آنها می توانید دکمه ها یا اندازه Axes را مطابق نیاز خود تنظیم کنید. ما کد تولید شده را مطابق توضیح زیر ویرایش کرده ایم.

در عملکرد ” uploadimage “، کد زیر را کپی و جایگذاری کنید تا فایل در کامپیوتر درج شود. در اینجا از دستور uigetfile(‘image extension type’) برای وارد کردن تصویر در GUI MATLAB استفاده میشود. آن فایل را با استفاده از فرمان imread() بخوانید و سپس با فرمان imshow() آن را در axes1 با استفاده از axes(handles.axes1) اجرا کنید. حال با دستور setappdata () متغیر را در GUI ذخیره کنید تا متغیر در یک قسمت از GUI به بخش دیگر GUI دسترسی پیدا کند.

a=uigetfile('.jpg')
a=imread(a);
axes(handles.axes1);
imshow(a);
setappdata(0,'a',a)

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

اکنون ، در هر عملکرد ، فرمان getappdata ()  را برای بازیابی داده هایی که با استفاده از setappdata ()  در GUI  ذخیره می شود ، مشاهده می کنید.

در اینجا ما هشت عملکرد متداول در پردازش تصویر را توضیح خواهیم داد.

شماره دستور نام دکمه عملکرد
1. uigetfile() Upload Image وارد کردن تصویر از حافظه
2. rgb2gray() RGB to Gray تبدیل تصاویر رنگی به سیاه و سفید
3. im2bw() Convert to Binary Image تبدیل تصاویر به باینری
4. RESET بازنشانی تصویر
5. imhist() Histogram نمایش هیستوگرام تصویر
6. imcomplement() Complement Image نمایش متمم تصویر
7. edge(filename,method) Edge Detection تشخیص لبه های تصویر
8. imrotate(filename,angle) Rotate Clockwise چرخش تصویر در جهت حرکت ساعت
9. imrotate(filename,angle) Rotate Anti-Clockwise چرخش تصویر در خلاف جهت حرکت ساعت

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

1. تبدیل تصویر رنگی به سیاه سفید در متلب

در عملکرد ‘rgb2gray’ کد زیر را کپی و جای گذاری کنید تا با استفاده از فرمان rgb2gray تصویر RGB را به سیاه سفید تبدیل کنید.

a=getappdata(0,'a');
agray=rgb2gray(a);
axes(handles.axes1);
imshow(agray);

تبدیل تصویر رنگی به سیاه سفید

2. تبدیل به تصویر باینری در متلب

در عملکرد “im2bw” ، کد زیر را کپی و جایگذاری کنید تا تصویر را به تصویر باینری تبدیل کنید یا می توانید از فرمان im2bw با فرمت “0” (سیاه) و “1” (سفید) استفاده کنید.

a=getappdata(0,'a');
abw=im2bw(a);
axes(handles.axes1);
imshow(abw);

تبدیل به تصویر باینری

3. بازگردانی به تصویر اصلی در متلب

در عملکرد “reset” ، کد زیر را کپی وجای گذاری کنید تا تصویر ویرایش شده در تصویر اصلی بازگردانی شود.

a=getappdata(0,'a');
axes(handles.axes1);
imshow(a);

بازگردانی به تصویر اصلی در Matlab

4. ترسیم هیستوگرام تصویر در متلب

در عملکرد “histogram” ، کد زیر را کپی و جایگذاری کنید تا با استفاده از فرمان imhist ('filename') نمودار هیستوگرام تصویر سیاه سفید را ترسیم کند و آن را در axes1 نمایش دهد.  برای ترسیم هیستوگرام همیشه باید تصویر را به سیاه سفید تبدیل کنید تا بتوانید هیستوگرام آن فایل گرافیکی را ببینید.

a=getappdata(0,'a');
ahist=a;
ahist=rgb2gray(ahist);
axes(handles.axes1);
imhist(ahist);

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

5. تبدیل به تصویر مکمل در MATLAB

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

a=getappdata(0,'a');
ahist=a;
ahist=rgb2gray(ahist);
axes(handles.axes1);
imhist(ahist);

تبدیل به تصویر مکمل در MATLAB

6. تشخیص لبه با استفاده از روش Canny

در عملکرد ‘edge’ (لبه) ، کد زیر را کپی و جای گزاری کنید تا با استفاده از لبه فرمان ، لبه های موجود در تصویر سیاه سفید را تشخیص داده و پیدا کنید.  در محل روش شما می توانید از میان این سه مورد ، canny ، پیش نویس و مونتاژ را انتخاب کنید.  ما برای تشخیص لبه از روش canny استفاده می کنیم. همچنین شما نمی توانید لبه را مستقیماً از تصویر اصلی تشخیص دهید ، ابتدا باید آن را به سیاه سفید تبدیل کنید و سپس بتوانید لبه ها را تشخیص دهید.

a=getappdata(0,'a');
aedge=a;
aedge=rgb2gray(aedge);
aedge=edge(aedge,'Canny')'
axes(handles.axes1);
imshow(aedge);

تشخیص edge با استفاده از روش Canny

7. چرخش تصویر در جهت عقربه های ساعت

در عملکرد “clockwise” ، کد زیر را کپی و جای گذاری کنید تا با استفاده از فرمان imrotate(filename,‘angle’) ، تصویر را در جهت عقربه های ساعت بچرخانید.

a=getappdata(0,'a');
aclock=a;
aclock=imrotate(aclock,270);
axes(handles.axes1);
imshow(aclock);

چرخش تصویر در جهت عقربه های ساعت

8. چرخش تصویر خلاف عقربه های ساعت

در عملکرد “خلاف جهت عقربه ای” ، کد زیر را کپی و جای گذاری کنید تا با استفاده از فرمان imrotate(filename,‘angle’) ، تصویر را در جهت خلاف جهت عقربه ساعت بچرخانید.

a=getappdata(0,'a');
aclock=a;
aclock=imrotate(aclock,90);
axes(handles.axes1);
imshow(aclock);

چرخش تصویر خلاف عقربه های ساعت

اجرای MATLAB GUI برای پردازش تصویر

اکنون، برای اجرای کد ویرایش شده در فایل m. بر روی دکمه Run کلیک کنید.

اجرای MATLAB GUI برای پردازش تصویر

ممکن است نرم ‌افزار MATLAB چند ثانیه طول بکشد تا پاسخ دهد، روی دکمه های GUI کلیک نکنید تا اینکه MATLAB پیام Busy را در گوشه پایین سمت چپ نشان دهد، همانطور که در زیر نشان داده شده است.

معنی پیام Busy در متلب

هنگامی که همه چیز آماده است، با کلیک بر روی دکمه “بارگذاری تصویر” تصویر را از کامپیوتر شخصی وارد کنید. اکنون، شما قادر خواهید بود با کلیک بر روی هر دکمه مناسب، تصویر را تغيير بدهید یا بچرخانید. جدول زیر وظایفی را که با کلیک بر روی هر دکمه خاص انجام می دهیم، به شما نشان می دهد.

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

در زیر، نتیجه کلیک روی هر دکمه نشان داده شده است.

نتیجه پردازش عکس در نرم افزار متلب

کار کامل هر دکمه در فیلم زیر نشان داده شده است.

حتی می توانید سطح پیشرفته پردازش تصویر را با جعبه ابزار پردازش تصویر انجام دهید که می توانید از سایت رسمی MATHWORKS خریداری کنید ، برخی از عملکردهای سطح پیشرفته در زیر ذکر شده است :

  • عملیات هندسی
  • عملیات بلوک
  • پالایش خطی و طراحی فیلتر
  • تحولات
  • تجزیه و تحلیل تصویر و ارتقا
  • عملکرد تصویر دودویی

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

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. مالکیتی بر مطالب ارائه شده ندارم. اکثر فعالیت بنده در زمینه ترجمه است. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

2 نظر

  1. سلام میخواستم بدونم که برای پردازش تصویر در متلب توسط HSV ابتدا باید اونو به RGB تبدیل کرد یا می توان به صورت مستقیم اونو پردازش کرد؟ اگر به صورت مستقیم میشه پس دستور اون در کتاب به چه صورت هستش …ممنون

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

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