Rabu, 19 Oktober 2016

Histogram Equalisation dan contoh penggunaanya pada MATLAB

Pada tulisan kali ini saya akan membahas tentang Histogram Equalisation atau biasa disebut perataan histogram. Histogram adalah diagram batang yang menunjukkan tabulasi dari data yang diatur berdasarkan ukurannya. Tabulasi data ini umumnya dikenal sebagai distribusi frekuensi. Histogram menunjukkan karakteristik-karakteristik dari data yang dibagi-bagi menjadi kelas-kelas. Pada histogram frekuensi, sumbu x menunjukkan nilai pengamatan dari tiap kelas. Histogram dapat berbentuk “normal” atau berbentuk seperti lonceng yang menunjukkan bahwa banyak data yang terdapat pada nilai rata-ratanya. Bentuk histogram yang miring atau tidak simetris menunjukkan bahwa banyak data yang tidak berada pada nilai rata-ratanya tetapi kebanyakan datanya berada pada batas atas atau bawah.

Tujuan dari perataan histogram ini adalah untuk memperoleh penyebaran histogram yang merata, sedemikian sehingga setiap derajat keabuan memiliki jumlah pixel yang relatif sama. Selanjutnya kita masuk ke tahap pembuatan perataan histogramnya, Pertama kita masuk ke aplikasi MATLAB yang digunakan untuk melakukan perataan histogram.

Untuk perataan histogram ini gambar harus dalam bentuk grayscale, untuk merubah gambar berwarna menjadi grayscle dengan perintah “rgb2gray(‘asli.jpg’);“



berkiut script yang digunakan:

X = imread(‘asli.jpg’);
Y = rgb2gray(X);
Z = figure,imhist(Y);
A = histeq(Y);
B = figure,imhist(A);

Keterangan :
“imread(‘asli.jpg’);“ untuk melakukan pengubahan menjadi matriks

“figure,imhist(‘asli).jpg’);” digunakan untuk membaca gambar dalam bentuk histogram, setelah gambar kita ubah menjadi matriks dan menjadi gambar grayscale sebelumnya

“histeq(‘asli.jpg’);“ untuk perataan historgramnya sendiri.

Hasil : 


Baca SelengkapnyaHistogram Equalisation dan contoh penggunaanya pada MATLAB

Konvolusi Pada Pengolahan Citra

Konvolusi
Kali ini saya akan membahas tentang konvolusi pada pengolahan citra dan contoh penggunaannya pada MATLAB. Secara umum konvolusi didefinisikan sebagai cara untuk mengkombinasikan dua buah deret angka yang menghasilkan deret angka yang ketiga. Didalam dunia seismik deret-deret angka tersebut adalah wavelet sumber gelombang, reflektivitas bumi dan rekaman seismik.

Secara matematis, konvolusi adalah integral yang mencerminkan jumlah lingkupan dari sebuah fungsi a yang digeser atas fungsi b sehingga menghasilkan fungsi c. Konvolusi dilambangkan dengan asterisk.

Sehingga, a*b = c berarti fungsi a dikonvolusikan dengan fungsi b menghasilkan fungsi c. Setelah mengetahui definisi dari konvolusi, Beberapa hal umum yang berhubungan dengan konvulasi :
  • Konvolusi diskrit banyak digunakan dalam pengolahan citra untuk image smoothing, edge detection dan efek-efeklainnya
  • Konvolusi dilakukan berdasarkan jumlah bobot dari piksel-piksel tetangga
  • Bobot ditentukan berdasarkan ukuran window berupa matriks
  • Window atau disebut juga sliding window bergerak sepanjang piksel yang ada pada citra berukuran kecil yang biasa disebut convolution mask atau convolution kernel
  • Orde matriks biasanya ganjilsehingga hasil konvolusi tepat berada ditengah-tengah
  • Semakin besar ukuran window,beban komputasi akan semakin meningkat

Secara matematis, konvolusi adalah integral yang mencerminkan jumlah lingkaran dari sebuah sudut fungsi F yang digeser atas fungsi g sehingga menghasilkan fungsi h. Konvolusi dilambangkan dengan arsterik (*). Sehingga, F*g=h berarti fungsi F dikonvolusikan dengan fungsi g menghasilkan fungsi h. konvolusi dua buah fungsi F(x) dan g(x) di definiskan sebagai berikut :


integral dari -tak hingga sampai tak terhingga. Untuk fungsi diskrit, konvolusi di definisikan sebagai :


g(x) disebut dengan kernel konvolusi (filter). Kernel g(x) merupakan jendela yang dioperasikan secara bergeser pada sinyal masukan F(x). Hasil konvolusi dinyatakan dengan keluaran h(x). Ilustrasi Konvolusi : F(i,j)



F(i,j) = AP1+BP2+CP3+DP4+EP5+FP6+GP7+HP8+IP9

Contoh, misal citra F(x,y) yang berukuran 5x5 sebuah kernel dengan 3x3 matriks sebagai berikut :


Tahapan menghitung hasil konvolusi :

  1. Menempatkan kernel pada sudut kiri atas, kemudian hitung nilai pixel pada posisi (0,0) dan kernel hasil = (3)
  2. Geser kernel satu pixel ke kanan, kemudian hitung nilai pixel pada posisi (0,0) dan kernel hasil = (0)
  3. Selanjutnya dengan cara yang sama geser ke kanan dan seterusnya
  4. Geser kernel satu pixel ke bawah, lakukan perhitungan seperti di atas
  5. Nilai pixel citra tepi tidak berubah
  6. Sehingga di dapatkan hasil sebagai berikut



Contoh Penggunaan Konvolusi Pada MATLAB
kita akan mencoba mempraktekkannya pada MATLAB. Berikut adalah langkah-langkah yang diperlukan :

  1. Buka Editor (pada tab menu pilih Dekstop >> Editor)
  2. Lalu pilih file>>new script
  3. Kemudian masukkan perintah dibawah ini :

gambar=imread(‘asli.jpg’);
[matrixcitra]=imread(‘asli.jpg’)
mask = [-1 -1 -1; -1 8 -1; -1 -1 -1];
gray=rgb2gray(gambar);
thresh=graythresh(gray);
imbw=im2bw(gray,thresh);
hasil=conv2(double(imbw),mask,’valid’);
imshow(gambar)
figure, imshow(hasil)
Setelah memasukkan script diatas, kemudian save file anda (directory bebas). Setelah melakukan proses save diatas, kemudian copykan file gambar yang hendak d konvolusikan pada directory script(file yang sudah disave diatas) yang sama. Lalu tekan F5

Citra awal


Citra hasil konvolusi

Proses olah citranya sebagai berikut:
Sample yang digunakan adalah matriks 5x5


Citra hasil konvolusi


Proses penghitungan sample matriks 5x5 secara manual :
Rumus yang digunakan f(x)*g(x)
Nilai mask yang dipakai:


Sumber :

  • Modul 6 Pengolahan Citra
  • http://rai46.blogspot.co.id/2012/03/konvolusi-kolerasi-pada-pengolahan.html


Baca SelengkapnyaKonvolusi Pada Pengolahan Citra

Selasa, 04 Oktober 2016

Cara Konversi Image Menggunakan Matlab

1. Membaca Citra / Image

Format file yang dapat di baca di MATLAB adalah :

TIFF
Tagged Image File Format
.tif .tiff
JPEG
Join Photographics Expert’s Group
.jpeg .jpg
GIF
Graphics Interchange Format
.gif
BMP
Windows Bitmap
.bmp
PNG
Portable Network Graphics
.png
XWD
X-Window Dump
.xwd


Cara membuka dan menampilkan gambar pada matlab dapat dilihat di sini 


2. Melakukan Konversi Gambar RGB Menjadi Grayscale

Untuk mengubah gambar RGB ke gambar grayscale di MATLAB ada fungsi khusus yaitu rgb2gray(gambar), contoh perintah dalam MATLAB adalah sebagai berikut :

clc;
clear;
RGB=imread('SADRI.jpg');
gambar=rgb2gray(RGB); %Proses Grayscaling
subplot(1,2,1);
imshow(RGB);
subplot(1,2,2);
imshow(gambar)

Hasil :
          


tetapi kadangkala diinginkan untuk perubahan bentuk grayscale ini tidak menggunakan fungsiMATLAB yang sudah ada yang merupakan nilai rata-rata piksel RGB tetapi masing-masing nilai RGB diberi nilai bobot yang berbeda-beda, contohnya sebagai berikut :

clc;
clear;
gambar=imread('SADRI.jpg');%Membaca file citra
red=gambar(:,:,1);%Mengambil matriks penyusun citra merah
green=gambar(:,:,2);%Mengambil matriks penyusun citra hijau
blue=gambar(:,:,3);%Mengambil matriks penyusun citra biru
gray2=0.3*red+0.5*green+0.2*blue;
subplot(2,2,1);
imshow(red)
title('Citra Merah')
subplot(2,2,2);
imshow(green);
title('Citra Hijau')
subplot(2,2,3);
imshow(blue)
title('Citra Biru')
subplot(2,2,4);
imshow(gray2)
title('Citra grayscale')

              Hasil :



3. Konversi Gambar ke Hitam-Putih

Cara mengkonversi citra RGB menjadi citra hitam putih dengan menggunakan syntax im2bw, berikut ini adalah contoh penggunannya di MATLAB :

clc;
clear all;
close all;
Gambar=imread('D:\latihan\SADRI.jpg');
subplot(1,2,1);
imshow(Gambar)
title('Citra Asli')
GambarBW=im2bw(Gambar); %Proses BW
subplot(1,2,2);
imshow(GambarBW)
title('Citra BW')
imwrite(GambarBW,'D:\latihan\SADRIBW.jpg','jpg'); %save gambarBW

              Hasil :



4.  Merubah Ukuran Citra
Mengingat banyaknya cara untuk merubah ukuran, disini saya mengambil gambar dengan ukuran  384 x 384 gunanya supaya mudah untuk dibagi 2 atau 0,5. contohnya adalah sebagai berikut :

clc;
clear;
I=imread('D:\latihan\SADRI.jpg');
J=imresize(I,0.5);
figure,imshow(I)
title('Citra 384x384')
figure,imshow(J)
title('Citra 192x192')
imwrite(J,'D:\latihan\SADRI1.jpg','jpg');

                 Hasil :



Sumber :

http://blogerr-info.blogspot.co.id/2013/12/pengolahan-citra-cara-mengformat-file.html





Baca SelengkapnyaCara Konversi Image Menggunakan Matlab

Pengolahan Citra dan Cara Membuka dan Menampilkan Gambar Dengan Menggunakan Matlab

Pengolahan Citra

Pengolahan citra adalah salah satu cabang dari ilmu informatika. Pengolahan citra berkutat pada usaha untuk melakukan transformasi suatu citra/gambar menjadi citra lain dengan menggunakan teknik tertentu. Pengolahan citra merupakan bidang yang bersifat multidisiplin, yang terdiri dari banyak aspek, antara lain fisika, elektronika, matematika, seni dan teknologi komputer. Pengolahan citra (image processing) memiliki hubungan yang sangat erat dengan disiplin ilmu yang lain. jika sebuah ilmu disiplin ilmu dinyatakan dengan bentuk proses suatu input menjadi output, maka pengolahan citra memiliki input berupa citra serta output juga berupa citra.

Pengolahan citra adalah istilah umum untuk berbagai teknik yang keberadaannya untuk memanipulasi dan memodifikasi citra dengan berbagai cara. Foto adalah contoh gambar berdimensi dua yang bisa diolah dengan mudah.Setiap foto dalam bentuk citra digital (misalnya berasal dari kamera digital) dapat diolah melalui perangkat-lunak tertentu. Pengolahan citra merupakan bagian penting yang mendasari berbagai aplikasi nyata, seperti pengenalan pola, penginderaan jarak-jauh melalui satelit atau pesawat udara, dan machine vision

Berikut prinsip dasar dalam pengolahan citra:

1. Peningkatan kecerahan dan kontras
Citra yang diproses seringkali dalam keadaan terdistorsi atau mengandung derau, untuk kepentingan tertentu derau tersebut perlu dibersihkan terlebih dahulu. Dalam pengolahan citra metode yang dapat dipakai untuk keperluan tersebut salah satunya cara yang dilaksanakan melalui filter notch.

2. Penghilangan derau
Untuk kepentingan mengenali suatu objek di dalam citra, objek perlu dipisahkan terlebih dahulu dari latar belakangnya. Salah satu pendekatan yang umum dipakai untuk keperluan ini adalah penemuan batas objek. Dalam hal ini batas objek berupa bagian tepi objek. Setelah tepi objek diketahui pencarian ciri terhadap objek dapat dilaksanakan.

3. Pencarian bentuk objek
Untuk kepentingan mengenali suatu objek di dalam citra, objek perlu dipisahkan terlebih dahulu dari latar belakangnya. Salah satu pendekatan yang umum dipakai untuk keperluan ini adalah penemuan batas objek. Dalam hal ini batas objek berupa bagian tepi objek. Setelah tepi objek diketahui pencarian ciri terhadap objek dapat dilaksanakan.


Cara Membuka dan Menampilkan Gambar Dengan Menggunakan Matlab

GUI merupakan salah satu fitur dalam matlab yang digunakan untuk menyajikan tampilan yang mudah untuk digunakan atau dibaca oleh pengguna (dalam istilahnya disebut juga aplikasi yang user friendly). GUI (Grapichal User Interface) sering digunakan untuk membuat simulasi aplikasi dekstop. Banyak orang yang menggunakan fitur ini sebagai medianya. Pada kesempatan kali ini, kita akan belajar cara membuka (browse) image dan menampilkannya dengan menggunakan GUI pada Matlab. Langkah pertama tentu saja jita harus membuat framework GUI Matlab terlebih dahulu. 

Langsung saja berikut tutorial cara membuka (browse) image dan menampilkannya dengan menggunakan GUI :

1. Kita buat Lembar kerja GUI dengan nama membuka_image.fig.



2. Kemudian drag and drop icon push button,  label, dan axis yang ada didalam kotak merah (lakukan seperti arah panah) kedalam panel lembar kerja.



3. Kemudian klik 2 kali tiap-tiap yang sudah didrag and drop dan isi bagian kolom string dan tag. Sebagai contoh klik push button 2 kali, maka akan muncul uicontrol seperti gambar berikut. Isikan string dengan nama browse dan tag dengan nama buka_gambar.  String digunakan sebagai tampilan icon sedangkan tag digunakan sebagai variabel identitasnya yang nanti bisa dipanggil didalam program. Perlu diperhatikan bahwa dalam membuat nama tag tidak boleh menggunakan karakter spasi.



Masing-masing item isikan dengan :
  1. Label 1 -> string : Input Image (untuk icon label, tag tidak perlu diisi).
  2. Push button -> string : browse, tag : buka_gambar.
  3. Label 2 -> string : show_image (untuk icon label, tag tidak perlu diisi).
  4. Axis -> tag : image_asli (untuk icon axis, string tidak perlu diisi)
  5. Setelah itu klik kanan icon push button, kemudian pilih View Callbacks -> Callbacks.

Maka akan muncul source code Mfile nya dan kemudian ketikkan kode program untuk membuka image seperti berikut ini.


% — Executes on button press in buka_gambar.
function buka_gambar_Callback(hObject, eventdata, handles)
% hObject handle to buka_gambar (see GCBO)
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[FileName,PathName]=uigetfile(‘*.jpg’,’Select Image file’);
im = imread([PathName,FileName]);
handles.im=im; % menyimpan nilai variabel
guidata(hObject,handles); % instruksi simpan object
axes(handles.image_asli); % memasukkan nilai variabel pada axis
imshow(im); % menampilkan image hasil browse

Catatan : image yang akan kita buka berektensi (.jpg). Untuk bisa membuka image dengan ektensi yang lain misalnya (.png), kita tinggal mengganti source codenya (.jpg) diganti dengan (.png).

5. Kemudian save dan coba tes jalankan aplikasi dengan mengklik icon run (segitiga warna hijau). Maka akan muncul seperti gambar berikut.


6. Kemudian klik browse untuk membuka image yang anda inginkan.


7. Jika langkah-langkahnya sudah kita lakukan dengan benar, maka akan muncul tampilan seperti berikut.


Catatan : image yang tampil diatas hanya sebagai contoh. Image yang muncul tergantung dari image yang anda buka.


Sumber :

http://hwsmartsolution.com/blog/2016/01/30/cara-membuka-dan-menampilkan-image-dengan-menggunakan-gui-matlab/

https://www.academia.edu/7385678/Pengolahan_Citra_Digital?auto=download




Baca SelengkapnyaPengolahan Citra dan Cara Membuka dan Menampilkan Gambar Dengan Menggunakan Matlab