خواندن داده های عکس در پردازش تصویر
برای خواندن و وارد کردن عکس های پشتیبانی شده توسط متلب، می توانید از تابع imread استفاده کنید. دستور زیر، یک عکس رنگی را می خواند و در متغیری به نام RGB ذخیره می کند:
$$RGB = imread('football.jpg');$$
در صورتی که فرمت آن عکس از پیکسل های 8 بیتی استفاده کند، دستور imread داده ها را بصورت یک ماتریس از نوع uint8 ذخیره می کند. برای فرمت هایی که از داده های 16 بیتی پشتیبانی می کنند، مثل فرمت PNG یا TIFF، دستور imread از یک ماتریس از نوع uint16 استفاده می کند.
دستور imread از دو متغیر برای ذخیره ی یک عکس ایندکس شده استفاده می کند. یک متغیر برای ذخیره ی خود عکس و یک متغیر هم برای ذخیره ی نقشه ی رنگ آن عکس. دستور imread همواره نقشه ی رنگ مورد نظر را در یک ماتریس از نوع double ذخیره می کند. با اینکه ماتریس عکس ممکن است از نوع uint8 یا uint16 باشد:
$$[X,map] = imread('trees.tif');$$
در این مثال ها، دستور imread از فرمت فایل استفاده می کند تا به محتوای آن فایل پی ببرد.شما همچنین می توانید بعنوان یک آرگومان، فرمت فایل را به دستور imread بدهید. دستور imread از تعداد زیادی از فایل های گرافیکی متداول مثل BMP و GIF و JPEG و PNG و TIFF پشتیبانی می کند.
در صورتی که فایل گرافیکی مورد نظر حاوی چندین عکس باشد، دستور imread تنها اولین عکس را از آن فایل می خواند. برای خواندن عکس های اضافی، شما باید مشخصات عکسی که می خواهید خوانده شود را بصورت آرگومان به تابع imread بدهید. در این مثال، دستور imread تعداد 27 عکس را از یک فایل TIFF می خواند و آنها را در یک ماتریس 4 بعدی ذخیره می کند. شما می توانید از تابع imfinfo برای مشخص کردن تعداد عکس های ذخیره شده در یک فایل استفاده کنید:
mri = zeros([128 128 1 27],'uint8'); % preallocate 4-D array
for frame=1:27
[mri(:,:,:,frame),map] = imread('mri.tif',frame);
end
- نوشته شده توسط احسان عباسی
- بازدید: 8279