آموزش متلب (MATLAB)
۵۴۳ آموزش
نمایش دسته بندی ها (۵۴۳ آموزش)

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

فرض کنید که یک عکس با نام myImage.bmp (با پسوند bmp) داریم. ابتدا بد نیست اندازه عکس مورد نظرمان را بررسی کنیم، بنابراین در محیط ویندوز، بر روی عکس، با موس، کلیک سمت راست نموده و گزینه Properties را انتخاب می کنیم. سپس در بخش Details ، می توانیم اندازه عکس را مشاهده کنیم :

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

همان طور که می دانیم، کوچکترین بخش سازنده عکس را پیکسل می نامیم (که در آن، رنگ، ثابت می باشد)،. عکس فوق دارای اندازه 213 در 161 پیکسل می باشد (یعنی 213 پیکس در جهت افقی داریم و تعداد 161 پیکسل هم در جهت عمودی داریم و بنابراین تعداد کل پیکسل ها برابر 213 ضرب در 161 می باشد). خوب حالا به سراغ نرم افزار متلب می رویم.

برای وارد کردن اطلاعات عکس مورد نظر به درون نرم افزار متلب، دستورات زیر را می نویسیم :


clear all
close all
clc

A = imread('myImage.bmp');
A_size = size(A)

با دستورات فوق، اطلاعات مربوط به عکس را در ماتریسی با نام A ذخیره می کنیم. همچنین با دستور size ، اندازه ماتریس A را به دست می آوریم. نتیجه اجرای کد متلب بالا، به صورت زیر می باشد :


A_size =

   161   213     3

بنابراین ماتریس A ، یک ماتریس سه بعدی است که در بعد اول، دارای اندازه 161، در بعد دوم، دارای اندازه 213 و در بعد سوم، دارای اندازه 3 می باشد. عدد 161 برابر همان تعداد پیکسل در جهت عمودی است و عدد 213 برابر تعداد پیکسل در جهت افقی می باشد، بنابراین دو بعد اول ماتریس A ، برای ارجاع به پیکسل های عکس به کار می روند. اما یک بعد سوم هم داریم که دارای اندازه 3 می باشد، بنابراین ما در ماتریس A ، برای هر پیکسل، 3 مقدار داریم. در واقع، این سه مقدار هستند که رنگ آن پیکسل را مشخص می کنند، پس با تغییر دادن آنها، می توانیم رنگ آن پیکسل را تغییر بدهیم.

چنانچه بخواهیم عکس ذخیره شده در ماتریس A را با نرم افزار متلب نمایش بدهیم، از دستور ؟ استفاده می کنیم :


clear all
close all
clc

A = imread('myImage.bmp');
A_size = size(A)

imshow(A)

نتیجه :

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

اکنون کدها را به گونه ای می نویسیم که در ماتریسی با نام B ، بخشی از عکس را داشته باشیم :


clear all
close all
clc

A = imread('myImage.bmp');
A_size = size(A)

horizontal_start_pixel = 50;
horizontal_end_pixel = 160;
vertical_start_pixel = 10;
vertical_end_pixel = 100;

B = zeros(vertical_end_pixel-vertical_start_pixel+1, horizontal_end_pixel-horizontal_start_pixel+1, 3);

for ii = vertical_start_pixel:vertical_end_pixel
    for jj = horizontal_start_pixel:horizontal_end_pixel
        B(ii-vertical_start_pixel+1,jj-horizontal_start_pixel+1,:) = A(ii,jj,:);
    end
end

B=mat2gray(B); % important
imshow(B)

استفاده از دستور mat2gray بسیار مهم است و چنانچه آن را به کار نبرید، عکس با رنگ های متفاوتی نمایش داده می شود که مطلوب نیست.

نتیجه :

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

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

نویسنده علیرضا گلمکانی
شماره کلید 2315
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 1 1 0
صادق
۱۳۹۵/۰۹/۱۴
۱۴:۰۸

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

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)