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

 هیستوگرام تصویر نموداری است که توسط آن تعداد پیکسل های هرسطح روشنایی در تصویر ورودی مشخص می شود یا به زبانی دیگر هیستوگرام تصویر نمایشی گرافیکی از تعداد تکرار پیکسل‌های با شدت رنگ مشابه در یک تصویر است. فرض کنید تصویر ورودی یک تصویر Grayscale با 252 سطح روشنایی باشد ، بنابراین هریک از پیکسل های تصویر مقداری در بازه ی 0 تا 255 می  توانند داشته باشند. برای به دست آوردن هیستوگرام تصویر ،کافی است با پیمایش کل پیکسل های تصویر ، تعداد پیکسل های هر سطح روشنایی رامحاسبه می کنیم .

ورودی ما تصویر زیر است:

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

کدهای نوشته شده به ترتیب زیر می باشد. ابتدا تصویر ورودی خوانده و بارگذاری می شود:
img = imread('peppers.png');
if size(img,3) == 3
    img = rgb2gray(img);
end
figure(1)
imshow(img)
title('Input Image')
از دستور زیر برای اعمال هیستوگرام رو ی تصویر استفاده می کنیم:
bin = 1:256;
hist = zeros(1,256);
for i = 0 : 255
    hist(i+1) = sum(sum(img == i));
end
و در نهایت برای نمایش نمودار هیستوگرام از دستور زیر استفاده می کنیم:
figure(2)
bar(bin, hist, 'cy')
grid on
ylabel('No. of pixels with such intensity levels')
xlabel('Intensity levels'), xlim([0 255])
title('HISTOGRAM OF THE IMAGE', 'fontsize', 14)
برای دریافت فایل آماده ی این پروژه به لینک زیر مراجعه کنید.
منبع
دانلود پروژه هیستوگرام

وارد کردن تصویر در 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 ذخیره کرده و در نهایت هر دو تصویر مشاهده میکنیم. نتیجه ی کد بالا به صورت زیر است:

برای دریافت پروژه ی اماده ی تبدیل تصاویر رنگی به Gray Scale اینجا را کلیک کنید.


منبع:

دانلود مقاله پردازش تصویر

دانلود مقاله اموزش متلب

یک نمونه پروژه تشخیص جعل کپی حرکت به روش DCT

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

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

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

تبدیل کسینوسی گسسته یا DCT که مخفیف Discrete cosine transform است، دنباله ‌ای محدود از نقاط داده را به‌ صورت مجموع توابع کسینوسی که در بسامد های متفاوت نوسان می ‌کنند را نمایش میدهد.

یکی از مهمترین بخشهای الگوریتمهای تشخیص جعل، مرحله ی استخراج ویژگی از تصویر است. بعبارتی بایستی با استخراج ویژگی مناسب و تطابق این ویژگی ها با یکدیگر بخشهای جعل شده تصویر را شناسایی کنیم. برای انتقال تصاویر به فضاهای مختلف و استخراج ویژگی در هر فضا از تبدیلهایی مثل dct=کسینوسی گسسته و یا dwt= موجک گسسته استفاده می شود.

این تبدیل ها در مراحل اولیه به بلاک ها و یا کل تصویر اعمال می شود.

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

 در این پروژه قصد بر این است که بتوانیم نقاطی را که جعل شده اند شناسایی و کشف کنیم. این پروژه یک نمونه ی ساده از کشف جعل کپی-انتقال می باشد که با تبدیل DCT انجام گرفته است در برنامه متلب انجام شده است.

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





در قسمت بعد به توضیح توابع مورد استفاده شده در این پروژه می پردازیم.

برای دانلود رایگان این پروژه و مقالاتش اینجا را کلیک کنید.