Membuat Steganografi Dengan Menggunakan Matlab

Selamat pagi semua , disini saya akan membahas mengenai pengolahan citra, khususnya steganografi.
Steganografi adalah seni dan ilmu menulis pesan tersembunyi atau menyembunyikan pesan dengan suatu cara sehingga selain si pengirim dan si penerima, tidak ada seorangpun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia. Sebaliknya, kriptografi menyamarkan arti dari suatu pesan, tapi tidak menyembunyikan bahwa ada suatu pesan. Kata "steganografi" berasal dari bahasa Yunani steganos, yang artinya “tersembunyi atau terselubung”, dan graphein, “menulis”.

Tujuan dari steganografi adalah merahasiakan atau menyembunyikan keberadaan dari sebuah pesan tersembunyi atau sebuah informasi. Dalam prakteknya, kebanyakan pesan disembunyikan dengan membuat perubahan tipis terhadap data digital lain yang isinya tidak akan menarik perhatian dari penyerang potensial, sebagai contoh sebuah gambar yang terlihat tidak berbahaya. Perubahan ini bergantung pada kunci (sama pada kriptografi) dan pesan untuk disembunyikan. Orang yang menerima gambar kemudian dapat menyimpulkan informasi terselubung dengan cara mengganti kunci yang benar ke dalam algoritma yang digunakan.
Pada metode steganografi cara ini sangat berguna jika digunakan pada cara steganografi komputer karena banyak format berkas digital yang dapat dijadikan media untuk menyembunyikan pesan. Format yang biasa digunakan di antaranya:
  • Format image : bitmap (bmp), gif, pcx, jpeg, dll.
  • Format audio : wav, voc, mp3, dll.
  • Format lain : teks file, html, pdf, dll.
Kelebihan steganografi jika dibandingkan dengan kriptografi adalah pesan-pesannya tidak menarik perhatian orang lain. Pesan-pesan berkode dalam kriptografi yang tidak disembunyikan, walaupun tidak dapat dipecahkan, akan menimbulkan kecurigaan. Seringkali, steganografi dan kriptografi digunakan secara bersamaan untuk menjamin keamanan pesan rahasianya.

Sekarang saya akan membahas mengenai tugas yang saya buat, yaitu steganografi untuk menyembunyikan suatu gambar dalam gambar lain. Yang pertama harus dilakukan adalah membuat interface aplikasi dengan menggunakan matlab.  Berikut adalah desain interface aplikasi yang saya buat :
Selanjutnya kita harus menambahkan script agar interface diatas dapat berfungsi menjadi aplikasi steganografi.  Berikut adalah potongan script yang digunakan :

 Script untuk memilih cover image:

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
lsb=1;
[handles.cfilename,handles.cpathname] = uigetfile(  {'*.jpg';'*.png';'*.bmp';'*.*'}, ...
        'Select cover image');
axes(handles.axes1);
I=imread([handles.cpathname handles.cfilename]);

imageinfo_cover=imfinfo([handles.cpathname handles.cfilename]);
val_red=I(:,:,1);
if handles.rad2==1
emb=zeros(3,7);
emb(1,:)=bitget(val_red(1,50:56),lsb);
emb(2,:)=bitget(val_red(1,57:63),lsb);
emb(3,:)=bitget(val_red(1,64:70),lsb);
emb_double=bi2de(emb);
emb=char(emb_double);
emb=emb';
 if ~strcmp(emb,'yes')
     axes(handles.axes1);cla
     errordlg(['No hidden image in ' handles.cfilename],'Select another Image');
 else
     image(I),axis off
     set(handles.pushbutton3,'Enable','on');
 end
else
     image(I),axis off
     image_height=imageinfo_cover.Height;
     image_width=imageinfo_cover.Width;
     handles.equ=((image_height-1)*(image_width-mod(image_width,8)))/8;
     set(handles.pushbutton2,'Enable','on');
end
guidata(hObject, handles);

Script untuk memilih secret image:

function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
if handles.rad2==1

else
    [handles.sfilename handles.spathname]=uigetfile({'*.jpg';'*.png'},'Select an Image');
    imageinfo_cover=imfinfo([handles.spathname handles.sfilename]);
    image_height=imageinfo_cover.Height;
    image_width=imageinfo_cover.Width;
   
    equ=image_width*image_height;
   
    if equ <=handles.equ
    I=imread([handles.spathname handles.sfilename]);
    set(handles.pushbutton3,'Enable','on');
    axes(handles.axes2);
    image(I);axis off
    else
    errordlg('Select another Image','Image too big');   
    end
    guidata(hObject, handles);
end

Script untuk menyembunyikan dan mengembalikan gambar :

function pushbutton3_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

if handles.rad1==1
lsb=1;  
I=imread([handles.cpathname handles.cfilename]);
imageinfo_cover=imfinfo([handles.cpathname handles.cfilename]);
image_height=imageinfo_cover.Height;
image_width=imageinfo_cover.Width;
 val_red=I(:,:,1); %get the red color matrix
 I_sec=imread([handles.spathname handles.sfilename]);
imageinfo_sec=imfinfo([handles.spathname handles.sfilename]); %get information of secret image
i_sec_height=imageinfo_sec.Height;          % secret image height
i_sec_width=imageinfo_sec.Width;            % secret image width

val_red=double(val_red);
%hide the secret image height 
i_sec_height_bin=de2bi(i_sec_height,16);
val_red(1,1:16)=bitset(val_red(1,1:16),1,i_sec_height_bin);

%hide the secret image width 
i_sec_width_bin=de2bi(i_sec_width,16);
val_red(1,17:32)=bitset(val_red(1,17:32),1,i_sec_width_bin);

%hide an identity, that this image has a secret image.
emb=('yes');
emb_bin=de2bi(double(emb));
val_red(1,50:56)=bitset(val_red(1,50:56),lsb,emb_bin(1,1:7));
val_red(1,57:63)=bitset(val_red(1,57:63),lsb,emb_bin(2,1:7));
val_red(1,64:70)=bitset(val_red(1,64:70),lsb,emb_bin(3,1:7));

I(:,:,1)=val_red; 
 i_sec_length=i_sec_height*i_sec_width;
I_sec_bin=zeros(i_sec_length*3,8);
I_sec_bin=de2bi(double(I_sec));    %convert the secret image to binary
Ipix_counter=1;                    %set a counter for the  pixels
len=mod(image_width,8);           
len=image_width-len;              

for count_hi=2:image_height
    count_wi=1;
    for count_wi=1:8:len-8
          val_red(count_hi,count_wi:count_wi+7)=...
                bitset(val_red(count_hi,count_wi:count_wi+7),1,I_sec_bin(Ipix_counter,:));
       
         Ipix_counter=Ipix_counter+1;
       if Ipix_counter>i_sec_length*3
         break;
       end
    end
       if Ipix_counter>i_sec_length*3
         break;
       end
end
I(:,:,1)=val_red;
[filename, pathname] = uiputfile('.png', 'Save Image as');
imwrite(I,[pathname filename ],'png');
set(handles.pushbutton3,'Enable','off');
set(handles.pushbutton2,'Enable','off');
axes(handles.axes1);cla
axes(handles.axes2);cla
msgbox(['The secret image ' handles.sfilename ' is in '  filename]);
else
  %case 2:Dercyption(Reocver the secret image from cover image)
lsb=1;
I=imread([handles.cpathname handles.cfilename]);   

imageinfo_cover=imfinfo([handles.cpathname handles.cfilename]);%cover image information
image_height=imageinfo_cover.Height;         %cover image height
image_width=imageinfo_cover.Width;           %cover image width

val_red=I(:,:,1);                            %get the red color matrix

%extract the secret image height and width from 1st 32pixel of cover image
i_sec_height=bi2de(bitget(double(val_red(1,1:16)),1));
i_sec_width=bi2de(bitget(double(val_red(1,17:32)),1));
i_sec_length=i_sec_height*i_sec_width;

I_sec_bi=zeros(i_sec_length*3,8);%initialize a zero matrix
Ipix_counter=1;                  %counter for pixels

len=mod(image_width,8);           
len=image_width-len;              

for count_hi=2:image_height
    count_wi=1;
    for count_wi=1:8:len-8
       I_sec_bi(Ipix_counter,1:8)=...
       bitget(val_red(count_hi,count_wi:count_wi+7),1);
       
       Ipix_counter=Ipix_counter+1;
       if Ipix_counter>i_sec_length*3
         break;
       end    

    end
        if Ipix_counter>i_sec_length*3
         break;
       end
end

image1=reshape(bi2de(I_sec_bi),i_sec_height,i_sec_width,3);
image1=uint8(image1);
rn=num2str(rand(1,1));
imwrite(image1,[num2str(rn(3:end)) '.png'],'png');
axes(handles.axes2);
image(image1);axis off
msgbox(['The image '  rn(3:end) '.png is extracted from ' handles.cfilename ' ,it is in your current directory']); 
end   

Script untuk radio button :

function uipanel1_SelectionChangeFcn(hObject, eventdata, handles)
% hObject    handle to uipanel1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
switch get(hObject,'Tag')   % Get Tag of selected object
    case 'radiobutton1'
        handles.rad1=1;
        handles.rad2=0;
        guidata(hObject, handles);
        % code piece when radiobutton1 is selected goes here
         axes(handles.axes1);cla
         axes(handles.axes2);cla
         set(handles.pushbutton3,'String','Hide');
         set(handles.pushbutton3,'Enable','off');
         set(handles.pushbutton2,'Enable','off');
         set(handles.pushbutton1,'Enable','on');
  
    case 'radiobutton2'
        % code piece when radiobutton2 is selected goes here
        % ...
        handles.rad2=1;
        handles.rad1=0;
        guidata(hObject, handles);
         axes(handles.axes1);cla
         axes(handles.axes2);cla
         set(handles.pushbutton3,'String','Recover');
         set(handles.pushbutton3,'Enable','off');
         set(handles.pushbutton2,'Enable','off');
         set(handles.pushbutton1,'Enable','on');
end

Menyembunyikan Gambar :

Setelah interface dan script siap, kita jalankan program yang telah dibuat.  Berikut adalah tampilan awal saat program dijalankan :
 
Untuk menyembunyikan gambar dalam gambar lainnya, pertama-tama kita pilih radio button “Hide Image”, lalu untuk memasukkan gambar yang akan menjadi media yang menyembunyikan gambar lainnya, pilih button Select Cover Image.  Untuk memasukkan gambar yang akan disembunyikan, pilih button Select Secret Image. 
 
  Setelah kedua gambar dimasukkan, maka lakukan steganografi dengan menekan button “Hide”. 
Selanjutnya User diminta untuk menyimpan gambar yang sudah disisipi gambar rahasia.
Jika proses steganografi sukses, maka akan muncul pesan seperti dibawah ini :
Mengembalikan gambar yang disembunyikan

Selain menyembunyikan, aplikasi yang saya buat juga dapat mengekstrak atau mengembalikan kembali gambar yang telah disembunyikan sebelumnya.  Caranya, pilih radio button “Recover Image”, lalu pilih gambar yang telah disisipi gambar rahasia dan terakhir pilih button “Recover”.
Jika proses pengembalian berhasil maka gambar yang telah disembunyikan sebelumnya akan ditampilkan kembali.

 Sekian dan terima kasih , semoga bermanfaat ..

contoh Aplikasi Image Processing via VB.NET

Sekarang kita masuk ke pembahasan inti, yaitu sedikit membahas dari program yang udah kita buat tentang Aplikasi Image Processing dengan VB.NET. nah aplikasi ini menerangkan tenang perubahan dari suatu gambar ke gambar yang baru dengan menggunakan metode Neighbourhood, Rotate, dan masih banyak lagi menu menu yang bisa kalian gunakan untuk merubah dari 1 gambar ke gambar yang baru.

Nah untuk lebih jelasnya lagi mari kita masuk ke pembahasan dari aplikasi Image Processing dengan VB.NET ini.

1. berikut adalah screensoot dimana pengenalan tataletak propertis propertis yang terdapat pada aplikasi Image Processing dengan VB.NET ini.

2. Selanjutnya adalah screenshoot dimana terdapat menubar yang terdapat dalam aplikasi ini.

3. Nah, selanjutnya kita masuk ke pembahasan singkat dari menu menu yang terdapat pada aplikasi ini. pertama saya membahas dari submenu yang terdapat pada File, pada File memiliki submenu yaitu open(untuk membuka gambar), save(untuk menyimpan gambar) dan Exit(keluar).

4. Selanjutnya pada menu Point Operation terdapat submenu dimana pada submenu Point Operation ini menunjukan function function untuk merubah gambar dengan fungsi Greyscale, Biner, m Bit, Brightness, Contrast, InversiNegative Image, Logaritmik(Terbagi menjadi 2 : Logaritmik dan Invers Logaritmik), dan Power Law(Terbagi menjadi 2 : Power dan Root Power).

5. Selanjutnya pada menu Neighbourhood Operation terdapat submenu dimana pada submenu Neighbourhood Operation ini menunjukan function function untuk merubah gambar dengan fungsi Konvolusi (Terbagi menjadi 5 : Filter smoothing, Weight smoothing, Prewit(Vertikal dan Horizontal), Laplasan(Mask1, Mask2, dan Mask3), dan Sobel(Vertikal dan Horizontal)), Min, Max, Mean dan Median.

6. Selanjutnya pada menu Rotate terdapat submenu dimana pada submenu Rotate ini menunjukan function function untuk merotasi gambar baik dengan cara merotasi kekiri, merotasi kekanan ataupun dengan merotasi dengan ukuran derajat (90, 180 dan 270).

Nah, itu pembahasan dari saya tentang Aplikasi Image Processing dengan VB.NET, nah untuk lebih jelasnya lagi atau kalian yang ingin mengetahui tentang aplikasinya seperti apa bisa kalian dapatkan di link dibawah dan juga jangan lupa bagi yang udah mampir baik membaca atau mendownload aplikasinya jangan lupa sama komen-komennya dan rate yah. Terima kasih :)

nah, kalian yang ingin aplikasi image processing dengan VB.NET ini, bisa kalian download klik disini!

download

PENCITRAAN KORELASI DAN KONVOLUSI PADA MATLAB

Nah, yang sudah saya janjikan pada postingan saya terdahulu yaitu tentang FILTER GAMBAR secara Numerik, saya akan mempostingkanPencitraan Konvolusi dan Korelasi Pada Matlab . Namun sebelum masuk ke pembahasan program tentang Konvolusi dan Korelasi kita harus tahu dulu dong apa sih Konvolusi dan Korelasi ini ?? berikut penjelasnnya :

  • Konvolusi adalah salah satu proses filtering image yang sering dilakukan pada proses pengolahan gambar. Pada MATLAB terdapat banyak sekali cara yang dapat dilakukan untuk melakukan proses konvolusi. Proses konvolusi dilakukan dengan menggunakan matriks yang biasa disebut mask yaitu matriks yang berjalan sepanjang proses dan digunakan untuk menghitung nilai representasi lokal dari beberapa piksel pada image.
  • Korelasi adalah Dalam teori probabilitas dan statistika, korelasi, juga disebut koefisien korelasi, adalah nilai yang menunjukkan kekuatan dan arah hubungan linier antara duapeubah acak.

Dalam  pembuatan Konvolusi dan Korelasi pada matlab sebetulnya sudah banyak referensi-referensi yang beredar untuk hal semacam ini,  ketika saya cari di mbah google dengan kata kunci “konvolusi image” itu hasilnya banyak sekali referensi-referensi yang saya temukan namun ketika pada korelasi saya mencari sumber tuh susah yaa paling juga dari websitehttp://www.mathworks.com.:)

nah, sekarang kita masuk saja ke pembahasan intinya dengan pembuatan Konvolusi dulu yah STEP Konvolusi pada MATLAB : :)

  1. yang jelas buka dulu aplikasi MATLABnya :)
  2. lalu pilih file>>new>>m-file
  3. masukan perintah dibawah ini (saya berikan pakai gambar yah biar kalian ngetik dan dimengerti) hehe:)
  4. Nah, tinggal SAVE/CTRL+S deh,
  5. Yang perlu kalian ingat sebelum pijit F5. Pada gambar diatas saya garis bawahi dengan warna merah, itu menunjukan gambarnya iya kan ? itu artinya masukan/simpan gambar kalian yang pengen di konvolusi di direktori si file(.m) pada gambar atas (yang kalian save barusan disimpen dimana sih, nah disitu kalian simpen si gambarnya):D
  6. dan terakhir pijit deh F5.
  7. jeng….jeng…apa yang terjadi ???

kalau program yang saya buat hasil gambar sebelum dan sesudahnya menjadi seperti ini :

BEFORE

AFTER

Nah, seperti itu penggunaan Konvolusi pada MATLAB. terlihat jelas perbedaannya ya kan ? itu hasil proses dari konvolusi. lalu pertanyaannya bagaimana proses semua itu terjadi ? bagaimana perhitungan manualnya ? Nah disini saya akan membahas juga perhitungan dengan menggunakan korelasi tersebut. Saya mengambil sample dari matriks yang belum di konvolusi dan yang sudah di konvolusi. berikut penampakannya :)

CITRA ASLI

CITRA SETELAH DI KONVOLUSI

Bagaimana bisa di dapatkan hasil seperti itu ? mari kita buktikan dengan konsep konvolusi :D

  1. matrix yang kita ambil 5×5 (sample) pada citra asli.
  2. nilai matrixnya . yang dimana hasil setelah di konvolusi menjadi
  3. gunakan rumus f(x)*g(x).
  4. dengan menggunakan formula pada microsoft excel lebih mudah dalam pengerjaannya, jadi bagi yang ingin melihat formulanya untuk proses konvolusi dapat anda donlot disini

KORELASI

Selanjutnya pada Korelasi lakukan step yang sama seperti sebelumnya, namun sebelumya saya akan membahas dulu konsep dari Korelasi ini. Rumus dari Korelasi ini seperti berikut

Nah dari rumus di atas, saya ambil sample citra yang mudah dan juga penyelesaiannya agar bisa di pahami dalam konsep Korelasi ini. dan di akhir saya akan membuktikan dengan menggunakan program MATLAB supaya terlihat jelas bahwa hasil perhitungannya pun tidak salah. berikut penampakannya :

Nah lalu apa hasil dengan menggunakan MATLAB akan sama hasilnya dengan perhitungan diatas ? mari kita buktikan :D

Cocok kan ? nah sekian pembahasan dari Pencitraan Konvolusi dan Korelasi Pada MATLAB ini,di lain waktu saya akan membagikan ilmu ilmu yang saya dapatkan dalam mata kuliah PENGOLAHAN CITRA. Sampai bertemu di postingan selanjutnya :)

-SENANGNYA BERBAGI-

Morphological Operation dengan menggunakan MATLAB

Sudah 1 bulan kurang lebih ga posting nih gara gara lagi UTS jadi agak sedikit ekstra buat belajarnya hehe..nah sekarang dh waktunya masuk kuliah lagi, kebetulan selagi kuliah saya dapetin materi tentang Morphological Operation dan Morphological Image Processing. nah maka dari itu kali ini saya ingin membahas sedikit tentang Morphological Operation dimana point-point yang akna kita bahas adalah

Definisi Morphing

Morphing merupakan suatu teknik dari pengolahan citra yang didasarkan pada pengolahan bentuk. Nilai dari tiap piksel citra yang diolah merupakan bentuk perbandingan antara piksel yang bersesuaian dari citra masukkan dengan nilai piksel tetangganya. Dengan memilih ukuran dan bentuk dari lingkungan, kita dapat membangun operasi analisis untuk mengolah citra yang dimasukkan agar lebih spesifik.

Pengertian Dilation dan Erotion

Pengertian Dilation dan Erotion Dilation dan Erosion adalah dua operasi pokok yang ada pada Morphological Operation. Dilation adalah suatu proses menambahkan piksel pada batasan dari objek dalam suatu image sehingga nantinya apabila dilakukan operasi ini maka image hasilnya lebih besar ukurannya dibandingkan dengan image aslinya. Erotion sendiri adalah kebalikan dari dilation. Proses ini akan membuat ukuran sebuah citra menjadi lebih kecil. Berbeda dengan dilation, apabila erosion dilakukan maka yang dikerjakan adalah memindahkan piksel pada batasan-batasan objek yang akan di erosion. Jumlah dari pikselyang ditambah atau dihilangkan bergantung pada ukuran dan bentuk dari structuring element yang digunakan untuk memproses image tersebut. Contoh dari structuring element ditunjukkan pada gambar berikut:

Pada morphological dilation dan erosion, kedudukan dari piksel pada image hasil (output) ditentukan dengan menerapkan sebuah aturan pada piksel yang bersangkutan dengan piksel tetangganya yang ada pada image yang di-input. Aturan yang digunakan untuk memproses image yang diinput tersebut, disebut dengan dialtion dan erosion operation. Berikut ini adalah aturan yang diterapkan pada operasi Dilation dan Erosion:

  • Dilation: Nilai dari piksel keluaran (output) adalah nilai maksimum dari semua piksel pada lingkungan piksel. Pada binary image, jika ada piksel yang bernilai 1, maka outputnya 1.
  • Erosion: Nilai dari piksel keluaran (output) adalah nilai minimum dari semua piksel pada input lingkungan piksel.

Gambar dibawah ini mengilustrasikan dilation pada binary image. Bagaimana structuring element mendefinisikan lingkungan dari piksel yang diinginkan, yang dilingkari

Berikut ini adalah contoh untuk mendilatasi sebuah binary image (Gambar berbentuk 3) yang berbentuk persegi panjang (Ditunjukkan pada Gambar 5). Untuk memperluas semua sisi pada image (ditunjukkan pada Gambar 3), gunakan square structuring elements 3×3 (Gambar 4). Gambar 6 adalah contoh erosion sebuah binary image, dimana image yang di erosion adalah image hasil dilation (Gambar 5). Erotion dilakukan dengan menggunakan STREL yang
sama dengan proses dilation diatas (STREL: Gambar 4).

KOMBINASI DILATION dan EROTION

Dilation dan Erotion sering digunakan secara bersama-sama untuk menerapkan operasi-operasi untuk memproses image contohnya, definisi dari Morphological opening dari sebuah image adalah erosi yang diikuti dengan proses dilation, dimana digunakan structuring element yang sama, untuk erotionnya maupun dilationnya. Kebalikan dari Morphological Opening adalah Morphotogical closing, yaitu. proses dilation dilakukan terlebih dahulu, kemudian erotion dilakukan.Morphological Opening dapat digunakan untuk menghilangkan benda-benda atau kepingan kecil yang ada pada sebuah image ketika memelihara bentuk dan ukuran dari benda benda atau kepingan yang lebih besar pada image tersebut. Ada 3 langkah, untuk melakukan morphological opening tersebut, yaitu :

Membuat structuring element.

  1. Meng-erotion image tersebut dengan structuring element pada langkah 1.
  2. Untuk mengembalikan image/benda-benda yang terkena proses erotion, dilakukan dilation dengan menggunakan structuring element yang sama.

Untuk Morphological Closing langkah ynag harus dilakukan adalah :

Membuat structuring element.

  1. Mendilation image tersebut dengan structuring element yang ada pada langkah 1.
  2. Meng-erotion image yang dihasilkan pada langkah dua.

Aplikasi Morphological pada Binary Image dengan Menggunakan MATLAB

Berikut ini adalah fungsi-fungsi yang ada pada Matlab yang dapat digunakan untuk pengolahan citra pala Binary lriage berdasarkan Morphological operation.
1. Untuk memasukkan image yang akan diproses kedalam Morphological Operation pada Matlab digunakan perintah:
>> imagname=inPut(‘n n Enter the name of the image file (filename.ext) :’,'s’)
:: Dimana variabel imagname adalah variable yang digunakan untuk menampung image yang diinput oleh user. Perintah input sendiri digunakan untuk peng-inputan file.
>> a = imread(imagname)
>> imshow(a)
:: a adalah variable yang dinginkan untuk image yang sudah dibaca oleh Matlab tersebut.
>> a = im2bw(a,0.5)
>> siz = size(a)
:: im2bw digunakan untuk merubah RGB atau grayscale image menjadi Binary lmage, sehingga image tersebut hanya memiliki warna hitam dan putin saja. Setelah
merubah image ini menjadi bentuk binary image maka akan dilakukan proses
morphological operation.
2. Morphological Operation yang digunakan pada program aplikasi dengan menggunakan Matlab menggunakan perintah bwmorph. Dengan menggunakan perintah tersebut selanjutnya kita dapat menggunakan perintah perintah yang telah disediakan oleh Matlab untuk memproses image dengan menggunakan Morphological Operation. Perintah yang digunakan untuk proses Morphological Operation adalah sebagai berikut:
>> ‘erode’
:: Digunakan untuk melakukan proses erotion pada binary image.
>> ‘dilate’
:: Digunakan untuk melakukan proses dilation pada binary image.
>> ‘open’
:: Digunakan untuk melakukan Morphological Opening (erotion kemudian dilation).
>> ‘close’
:: Digunakan untuk melakukan Morphological Closing (dilation kemudian erotion).
>> ‘tophat’
:: Top Hatt, mengurangi hasil Morphological Opening (erotion diikuti dilation) dari input image.
>> ‘bothat’
:: Bottom Hatt, menampilkan Morphological Closing (dilation diikuti erotion) dan mengurangi piksel dari image asli yang diinput.
>> ‘clean’
:: Menghilangkan piksel yang terisolasi.
>> ‘fiil’
:: Mengisi piksel yang berada didalam (0 diketitingi oleh 1).
>> ‘remove’
:: Menjadikan semua piksel menjadi 0 jika 4 piksel tetangga yang terhubung adalah 1, hanya meninggalkan piksel yang menjadi batas-batas.
>> ‘shrink’
:: Menyusutkan objek ke poin-poin. Perintah ini menghilangkan piksel sehingga objek tanpa celah atau lubang menyusut ke sebuah poin, objek dengan lubang ke sebuah cincin terhubung diantara setiap lubang dan batas luar.
>> ‘thicken’
:: Menebalkan objek dengan menambahkan piksel ke objek luar sehingga objek yang tadinya tidak terhubung menjadi terhubung (Bconnected).
>> ‘thin’
:: Menipiskan objek ke dalam bentuk garis.

UJICOBA
Pengujian dilakukan dengan memasukkan 3 buah image berekstensi jpg. Ketiga image tersebut berbeda penggunaan warnanya yang pertama adalah image dengan RGB, kemudian image dengan grayscale, kemudian image hitam putih.

1. RGB Image, mario.jpg

Nah itu pembahasan untuk kali ini, semoga dapat bermanfaat bagi temen-temen sekalian dan sampai jumpa dipertemuan posting berikutnya :)
-SENANGNYA BERBAGI-

PENERAPAN METODE BISECTION DENGAN MENGGUNAKAN MATLAB


A. ULASAN METODE

Metode Bisection atau metode bagi dua merupakan salah satu jenis pencarian inkremental dimana interval akan terus-menerus dibagi separuhnya. Jika suatu fungsi berubah tanda sepanjang suatu interval,maka harga fungsi yang berada di tengahnya akan dievaluasi. Letak akarnya kemudian ditentukan ada di tengah-tengah subinterval dimana perubahan tanda terjadi. Proses ini akan diulangi untuk memperoleh taksiran yang lebih pasti.

B. APLIKASI PENGGUNAAN

Dengan memahami pemrograman metode Bisection ini diharapkan mahasiswa mampu menyusun progran metode perhitungan Akar Persamaan Nonlinier dengan menggunakan MATLAB.

C. ALGORITMA DAN CONTOH PROGRAM

a. ALGORITMA :

Algoritma dari metode ini adalah :

1.) Program dimulai

2.) Sebagai persiapan membersihkan layar command window dan menghapus isi variabel sebelumnya yang tidak berfungsi

3.) Melakukan pendekatan awal x1 dan x1

4.) Menentukan harga x3 = (x1 + x2)/2.

5.) Jika |f(x3)| ≤ toleransi, maka harga x3 adalah harga x yang dicari

6.) Menampilkan hasil program baik itu berupa kurva

7.) Program selesai

b. CONTOH PROGRAM :

Script pada Editor / Debugger:

clc

clear

disp('Soal: y = 10*x^3-5*x^2-6*x-12')

%soal 10*x^3-5*x^2-6*x-12

a=2;

disp('a=');

disp(a);

b=72;

disp('b=');

disp(b);

c=(a+b)/2;

disp('c=');

disp(c);

y0=10*c^3-5*c^2-6*c-12;

disp('y0=');

disp(y0);

d=(a+c)/2;

disp('d=');

disp(d);

y1=10*d^3-5*d^2-6*d-12;

disp('y1=');

disp(y1);

e=(d+c)/2;

disp('e=');

disp(e);

y2=10*e^3-5*e^2-6*e-12;

disp('y2=');

disp(y2);

f=(c+e)/2;

disp('f=');

disp(f);

y3=10*f^3-5*f^2-6*f-12;

disp('y3=');

disp(y3);

g=(c+f)/2;

disp('g=');

disp(c);

y4=3*g^3-5*g^2-6*g-12;

disp('y4=');

disp(y4);

h=(c+g)/2;

disp('h=');

disp(h);

y5=10*h^3-5*h^2-6*h-12;

disp('y5=');

disp(y5);

i=(c+h)/2;

disp('i=');

disp(i);

y6=10*i^3-5*i^2-6*i-12;

disp('y6=');

disp(y6);

j=(h+i)/2;

disp('j=');

disp(j);

y7=10*j^3-5*j^2-6*j-12;

disp('y7=');

disp(y7);

k=(i+j)/2;

disp('k=');

disp(k);

y8=10*k^3-5*k^2-6*k-12;

disp('y8=');

disp(y8);

y0=10*c^3-5*c^2-6*c-12;

disp('y0=');

disp(y0);

y1=10*d^3-5*d^2-6*d-12;

y2=10*e^3-5*e^2-6*e-12;

y3=10*f^3-5*f^2-6*f-12;

y4=10*g^3-5*g^2-6*g-12;

y5=10*h^3-5*h^2-6*h-12;

y6=10*i^3-5*i^2-6*i-12;

y7=10*j^3-5*j^2-6*j-12;

y8=10*k^3-5*k^2-6*k-12;

y=[y0 y1 y2 y3 y4 y5 y6 y7 y8];

x=[c d e f g h i j k];

plot(x,y);

xlabel('x'),ylabel('y');

grid on;

Hasil pada Command Windows:

Soal: y = 10*x^3-5*x^2-6*x-12

a=2

b=72

c=37

y0=499451

d=19.5000

y1=7.2119e+004

e=28.2500

y2=2.2128e+005

f=32.6250

y3=3.4173e+005

g=37

y4=1.2029e+005

h=35.9063

y5=4.5625e+005

i=36.4531

y6=4.7753e+005

j=36.1797

y7=4.6681e+005

k=36.3164

y8=4.7215e+005

y0=499451

Kurva yang dihasilkan:

clip_image002

APLIKASI PEMBANGKIT SINYAL KOSINUS MENGGUNAKAN MATLAB

Salah satu mata Kuliah yang sangat menarik bagi saya di Kampus Tercinta IPB adalah mata kuliah  Pengolahan Sinyal dan Teknik Multimedia. Pengolahan sinyal adalah mata kuliah yag mempelajari bagaimana suatu sinyal dibuat dan direkayasa agar sesuai denga kebutuhan terutama sekali untuk kepentingan penyimpanan. Aplikasi yang digunakan adalah Matlab, aplikasi yang sangat membantu bagi para engineer.
Sebagai salah satu contoh berikut ini akan saya tampilkan contoh aplikasi pembangkit sinyal cosinus yang sangat sedrhana
Pada kasus ini sinyal frekuensi yang akan saya bangkitkan adalah sinyal cosinus dengan Amplitudo=1 dan frekuensi=100 hz dan menggunakan frekuensi sampling fs=16000 hz dan waktu t=100 ms
semoga bermanfaat

Fs=16000;

f=100;

t=0:0.01/Fs:0.1;

x1=cos(2*pi*t*f);

plot(t,x1);

title('Gambar sinyal cosinus');

xlabel('waktu(sekon)');

ylabel('Amplitudo');

Jika sudah selesai maka akan tampil aplikasi pembangkit sinyal cosinus sederhana seperti dibawah ini