تغییر نوع تصاویر به یکدیگر
حال که تصاویر را شناختیم و انواع آن را مورد بررسی قرار دادیم قرار است در این پست با تبدیل انواع تصاویر شروع می کنیم.
تابع | عملکرد تابع |
gray2ind | تبدیل تصویر خاکستری به ایندکس شده |
Ind2gray | تبدیل تصویر ایندکس شده به خاکستری |
im2bw | تبدیل انواع تصویر به نوع باینری |
ind2rgb | تبدیل تصاویر ایندکس شده به رنگی |
rgb2ind | تبدیل تصویر رنگی به ایندکس شده |
rgb2gray | تبدیل تصویر رنگی به خاکستری |
mat2gray | تبدیل ماتریس به تصویر نوع خاکستری |
همانطور که قبلا ذکر شده است تصاویر رنگی از نوع RGB، بسیاری از توابع تحلیل مکانی بر رو ی آن عمل نمی کند بنابراین باید بر روی بُعد های مختلف آن اعمال شود. برای درک بهتر تصاویر رنگی به مثال های زیر توجه کنید :
A= imread ('peppers.png');
R = A(:,:,1); subplot 131; imshow(R)
G = A(:,:,2); subplot 132; imshow(G)
B = A(:,:,3); subplot 133; imshow(B)
پس از جدا سازی لایه های مختلف، حال نوبت به اعمال توابع بر روی هر بعد می باشد با فرض انجام تغییر باید تصویر را به صورت حالت اول منسجم کنیم که این کار با دستور زیر انجام می شود
after_chang = cat(A,B,C,3)
در واقع با این دستور سه ماتریس به صورت سه بعدی مجدد به شکل یک تصویر RGB ساخته شد.
حال برای نمایش و ذخیره تصویر در پسوند jpg از دستورات زیر استفاده می کنیم :
imshow (after_change)
imwrite(after_chang,'final.jpg')
همین مساله برای HSV نیز صادق است می توان برای لایه های مختلف H,S,V می تواند در تفکیک رنگ موثر تر عمل کرد.
A= imread ('peppers.png');
B = rgb2hsv (A);
H = B(:,:,1);
S = B(:,:,2) ;
V = B(:,:,3);
دانلود کد : تفکیک رنگ به روش RGB و HSV
ممنون از زحماتتون