IFD : Image Forgery Detection

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

Matlab میتواند فایلهای گرافیکی با فرمتهای JPEG, TIFF, GIF, BMP, PNG, HDF, PCX، XWD, ICO, CUR  را به عنوان فایل گرافیکی بخواند.

مثلاً برای وارد کردن تصویری به نام cameraman.tif به فضای Matlab کافی است از دستور imread استفاده کنیم:

MyImage=imread(‘cameraman.tif’);

توجه داشته باشید که فایلی که دستور خواندنش را میدهید باید برای برنامه قابل دسترس باشد. یعنی یا باید در مسیر (Path) Matlab باشد یا اینکه در پرونده های (folder) قرار داشته باشد که در حال حاضر برنامه به آن دسترسی دارد.

خب تا اینجا یک فایل تصویر را در محیط Matlab وارد کرده ایم. همانطور که میدانیم یک تصویر دیجیتال بر روی کامپیوتر در قالب یک ماتریس ذخیره میشود. پس MyImage مثل همه متغیرهای Matlab یک ماتریس است.

برای اینکه بدانیم فایل خوانده شده از چه فرمتی است(سیاه سفید، یا Gray Scale یا رنگی  ) و اینکه اطلاعاتی کلی راجع به تصویر بدست آوریم می نویسیم:

imfinfo(‘cameraman.tif’)

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

Filename، FileModDate، FileSize، Format، FormatVersion، Width، Height، BitDepth، ColorType،FormatSignature، ByteOrder، NewSubFileType، XResolution، YResolution، Colormap، GrayResponseUnit.

حال برای دیدن تصویر وارد شده نیز می توان از دستور زیر استفاده کرد:

imshow(MyImage)

تبدیل تصاویر:

در گام بعدی برای این که بتوانیم رنگ های موجود در تصویر را به منظور خوشه بندی از هم تفکیک کنیم باید فضای رنگ تصویر را از RGB  به سیاه سفید یا Gray Scale تبدیل نمود.

  • برای تبدیل تصویر رنگی به سیاه سفید(باینری)  از کد im2bw  استفاده می کنیم. به صورت زیر:

bw=im2bw(X,map,0.4);

imshow(bw)

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

  • برای تبدیل تصویر رنگی به Gray Scale از دستور rgb2gray استفاده می کنیم.در تمامی این دستورات ابتدا فراخوانی تصویر را داریم سپس از این قطعه کدها استفاده می کنیم.

MyImage=imread(‘cameraman.tif’);

MyImage2 = rgb2gray(MyImage);

imshow(MyImage),imshow(MyImage2)

ابتدا تصویر را فراخوانی کردیم سپس تصویر رنگی را به Gray Scale تبدیل نموده و در ماتریس MyImage2 ذخیره کرده و در نهایت هر دو تصویر مشاهده میکنیم. نتیجه ی کد بالا به صورت زیر است: