Tugas Mengubah Warna Gambar (Annisa Judya Sugiarti 2413100133)

Jumat, 28 Maret 2014
Untuk tugas membuat program dengan Matlab, saya membuat program untuk merubah warna gambar menjadi grayscale atau gradasi warna yang diinginkan, misal gradasi warna merah sampai putih.

Dalam program ini, pada proses input gambar, user akan ditanyai apakah gambar yang hendak diinputkan berada satu direktori dengan M-file program ini atau tidak. Apabila tidak, maka user harus memasukkan nama file gambar beserta direktorinya, misal D:\MyPicture\gambar.jpg.

Gambar yang sudah diubah warnanya akan ditampilkan berdampingan dengan gambar awal.

User akan mendapat opsi untuk menyimpan gambar atau tidak. Apabila iya, maka user akan ditanyai nama file gambar baru.

PROGRAM:
close all
clear
clc

disp('Program merubah warna gambar');
disp('Input gambar');
disp('Apakah gambar berada di direktori aktif saat ini? (Y/N)');
ques=input(' ','s');

if ques=='N',
    disp('Masukkan direktori data gambar, contoh d:\myfile\gambar.jpg');
    direk=input('','s');
    [fpath,fname,fext]=fileparts(direk);
    copyfile(direk,cd);
    a=imread([fname,fext]);
elseif ques=='Y',
    disp('Masukkan nama file gambar, contoh gambar.jpg');
    direk=input('','s');
    a=imread(direk);
end;

r=0; g=0; b=0;
disp('Pilih warna yang diinginkan');
disp('1. Grayscale');
disp('2. Gradasi warna pilihan anda');
ques=input('');

if ques==2
    disp('Masukkan angka RGB warna yang diinginkan');
    r=input('Red = ');
    g=input('Green = ');
    b=input('Blue = ');
end;

%menentukan RED gambar baru
c(:,:,1)=uint8(round((double(a(:,:,1))+double(a(:,:,2))+double(a(:,:,3)))*(255-r)/765 + r));
%menentukan GREEN gambar baru 
c(:,:,2)=uint8(round((double(a(:,:,1))+double(a(:,:,2))+double(a(:,:,3)))*(255-g)/765 + g));
%menentukan BLUE gambar baru
c(:,:,3)=uint8(round((double(a(:,:,1))+double(a(:,:,2))+double(a(:,:,3)))*(255-b)/765 + b));

subplot(1,2,1);imshow(a); %menampilkan gambar lama di baris 1 kolom 1
subplot(1,2,2);imshow(c); %menampilkan gambar baru di baris 1 kolom 2

disp('Simpan gambar? (Y/N)');
ques=input('','s');

if ques =='Y',
    nama=input('Masukkan nama file = ','s');
    imwrite(c,nama);
end;
   
    Berikut contoh tampilan gambar

0 komentar:

Posting Komentar