Minggu, 05 April 2015
Image Enhancement Histogram

Historgram Citra
Histogram citra merupakan diagram yang menggambarkan distribusi frekuensi nilai intensitas piksel dalam suatu citra. Sumbu horisontal merupakan nilai intensitas piksel sedangkan sumbu vertikal merupakan frekuensi/jumlah piksel. Historgram dari sebuah citra ditunjukan pada gambar


Citra yang terang, histogramnya akan cenderung menumpuk di sebelah kanan, dan citra gelap, histogramnya akan menumpuk di sebelah kiri.

Perataan Histogram (Histogram Equalization)


Teknik perataan histogram merupakan gabungan antara pergeseran dan pelebaran histogram. Tujuan yang akan dicapai pada teknik ini adalah untuk mendapatkan citra dengan daerah tingkat keabuan yang penuh dan dengan distribusi pixel pada setiap tingkat keabuan yang merata.
Pada teknik perataan histogram ini mentransformasi tingkat keabuan rk menjadi sk  dengan suatu fungsi transformasi T(rk) fungsi transformasi ini memiliki syarat sebagai berikut:
  •  T(r)  memberikan nilai tunggal (one-one-onto) sehingga memiliki inverse serta monoton naik untuk interval 0 r ≥ 
  • 0 ≤ T(r) ≥ 1 atau 0 r ≥ 1.

Bentuk Umum Metode Histogram 


rk =  tingkat keabuan ke-k
nnilai intensitas /  pixel  pada  setiap tingkat keabuan rk pada citra
n  = total seluruh pixel yang ada pada setiap tingkat keabuan








Sekian dulu untuk penjelasan singkat tentang histogram. Sekarang masuk pada kasus soal seperti dibawah ini...?? ^_^

Misalkan ada gambar atau objek dengan ukuran 64*64 dengan 16 gray level maka..?
64*64 = 4096  perhatikan gambar dibawah ini yang dibuat dengan Excel..



Untuk lebih jelasnya langsung saja download Tugas 3 Citra Digital Enhancement Histogram yang di buat dengan Excel 2007 dengan menampilkan chart column untuk representasi nilai intensitas/pixel dan gray level.


Sekian dulu postingan image enhancement histogram,  Semoga postingan kali Ini Bermanfaat Bagi Teman – teman
Dan apabila masih ada kurang dan salah dalam penulisan serta analisa, jangan lupa tinggalkan komentar ….!!! ^_^

Edavads..

Minggu, 22 Maret 2015



Lakukan image enhancement metode contrast terhadap citra input berikut :




Tabel Matriks





Penyelesaian :


S1 titik- titiknya  (r1.S1) dan (r2.S2) adalah : (0 . 0.4) dan (0.3 . 0.1) , jadi Persamaan yang digunakan adalah :



S2 titik- titiknya  (r1.S1) dan (r2.S2) adalah : (0.3 . 0.1) dan (0.5 . 0.9) , jadi Persamaan yang digunakan adalah :


S3 titik- titiknya  (r1.S1) dan (r2.S2) adalah : (0.5 . 0.9) dan (1 . 1) , jadi Persamaan yang digunakan adalah :




S4 titik- titiknya  (r1.S1) dan (r2.S2) adalah : (1 . 1) dan (0.8 . 0.6) , jadi Persamaan yang digunakan adalah :

Gray Level yang diketahui :
Membuat Normalisasi , tujuannya agar nilai yang terdapat pada matriks di buat   ≥ 0 dan ≤ 1  dengan rumusnya r / 255

Cat :
 r = nilai tereduksi dari table matriks (dengan cara menghilangkan nilai yang sama)

jadi Gray Level yang diketahui :
     1.     200     → r = 200/255 = 0.7843
     2.     100     → r = 100/255 = 0.3922
     3.     50       → r = 50 / 255 = 0.1961
     4.     10       → r = 10 / 255 = 0.0392

Persamaan yang didapat sebelumnya adalah :
SI   = -r + 0.4               →   0. ≤ r ≤ 0.3
SII  = 4r - 1.3           →   0.3 ≤ r ≤ 0.5
SIII = -0.2r + 0.8      →   0.5 ≤ r ≤ 1
SIV = 2r - 1             →   1 ≥ r ≥ 0.8

Selanjutnya masukan nilai gray level (r) yang telah didapat sebelumnya ke persamaan SI, SII, SIII dan SIV

     1.     SIV     = ( 2 * 200/255 - 1 ) * 255    = 145
     2.     SII       = ( 4 * 100/255 – 1.3) * 255 = 68,50  ≈ 69
     3.     SI        = ( -50/255 + 0.4 ) * 255       = 52
     4.     SI        = ( -10/255 + 0.4 ) * 255       = 92,00 ≈ 92

Kemudian Ganti Nilai Tabel Matriks dengan Nilai :

     ·        Nilai 200 diganti dengan 145
     ·        Nilai 100 diganti dengan 69
     ·        Nilai 50 diganti dengan 52
     ·        Nilai 10 diganti dengan 92

Bentuk table nya seperti dibawah ini

            Table before                                 Table After
100
200
200
200
50
100
50
100
10
50
100
50
0
10
50
100
69
145
145
145
52
69
52
69
92
52
69
52
0
92
52
69
         




Semoga postingan kali Ini Bermanfaat Bagi Teman – teman
Dan apabila masih ada kurang dan salah dalam penulisan serta analisa, jangan lupa di komentari ya….!!! ^_^


Edavads..






Soal 1 :




Yang di tanya..? carilah tetangga nya dengan menggunakan
a.       N4   (P)
b.       ND  (P) 
c.   N8   (P)
 Penyelesaian :

  • N4 (P) 

  • ND (P)



  • N8  (P)








Soal 2 :






Dalam Kasus kali ini kita akan menentukan 4 orang anak dari ibu ( Yessi, Bunga, Ince, dan Fara) dalam menguji kemiripan dari Bapak Albert. Lalu apa yang diuji..? yang diuji disini yaitu kemiripan gambar dari bapak Albert dan  ke 4 anak  sob.. yang jelasnya lagi menguji warna pixel dari gambar yang di representasikan di dalam matrik dengan metode Eucledian. Okkk langsung saja ke TKP..!!!



Makin tambahh bingungg.  Hehehhe
jadi gambar di atas merupakan nilai warna pixel yang di simpan dalam table yang nanti akan di uji dalam mengukur jarak pixel antara (bapak Albert dengan Anak Ibu Yesi, Bapak Alber dengan Anak ibu Bunga dan seterusnya).
Metode Pengukuran jarak ada 3:
  • Jarak Eucledian
  • Jarak D4 ( city-block)
  • Jarak D8 ( papan catur)
Tapi yang sering digunakan adalah Jarak Eucledian dan bentuk metodenya : De(p,q) = [(x-s)^2+(y-t)^2]1/2


Ok Kembali Ke TKP….hehehehe
Pertanyaannya adalah Bapak Alber Mirip Anak ibu…???
Penyelesaian :
Misalkan anak ibu Yessi = P,  anak ibu Bunga = Q, anak ibu Ince = R, anak ibu Fara = S dan untuk Bapak Albert = Z .


ZZP  = [(90-100)^2+(60-50)^2+(80-80)^2+
         (60-101)^2+(40-79)^2+(50-85)^2+
         (40-90)^2+(60-80)^2+(30-78)^2+
         (80-80)^2+(50-90)^2+(50-95)^2]^1/2
      = 116



ZZQ  = [(90-40)^2+(60-51)^2+(80-40)^2+
         (60-50)^2+(40-57)^2+(50-50)^2+
         (40-48)^2+(60-47)^2+(30-50)^2+
         (80-50)^2+(50-43)^2+(50-53)^2]^1/2
      = 78.5



ZZR  = [(90-60)^2+(60-59)^2+(80-60)^2+
         (60-65)^2+(40-58)^2+(50-60)^2+
         (40-70)^2+(60-59)^2+(30-60)^2+
         (80-60)^2+(50-58)^2+(50-60)^2]^1/2
      = 64.1



ZZS  = [(90-30)^2+(60-31)^2+(80-50)^2+
         (60-35)^2+(40-35)^2+(50-40)^2+
         (40-38)^2+(60-34)^2+(30-25)^2+
         (80-30)^2+(50-32)^2+(50-35)^2]^1/2
      = 99.2



  Dari Hasil Uji Diperoleh Nilai :
ZZP                 : 116
ZZQ                 : 78.5
ZZR                 : 64.1
ZZS                 : 99.2


Untuk menentukan Kemiripan dilihat dari nilai yang paling kecil…!
Jadi Nilai Min adalah : 64.1
Maka Anak Ibu Ince lah , Yang mirip dengan Bapak Albert..!


Sekian Dulu Posting Kali Ini Apabila terdapat kesalahan dalam penulisan, jangan lupa tinggalkan Komentar…


EDAVADS.. 


Jumat, 07 November 2014
Halo sobat blogger semua !!!!!  wah tak terasa sudah Tugas yang ke 3 Grafika computer……
melanjutkan yang kemarin yang membuat Emoticon, masih masih ada satu tugas tentang Membuat Animasi teks menggunakan java untuk kali ini saya akan membahas tentang
 membuat animasi teks berjalan secara diagonal menggunakan bahasa pemrograman java..
Sebenarnya untuk animasi ini hanya perlu membuat 2 objek gambar String dan 2 objek gambar String tersebut akan di panggil bergantian dan bersamaan dengan mengubah posisinya sehingga seakan-akan terlihat seperti Teks Berjalan.
untuk lebih jelasnya bisa kalian lihat source code dibawah ini..

package grafikaanimasi;
import java.awt.*;
import java.awt.event.*;
import javax.swing.ImageIcon;
/**
 *
 * @author Santi-Videl
 */
public class GrafikaAnimasi extends Frame implements ActionListener{
   

    int x = 100;
    int y = 100;

   
public GrafikaAnimasi() {
setTitle("AnimasiDGWarna");
// create menu
    MenuBar mb = new MenuBar();
    setMenuBar(mb);
    Menu menu = new Menu("File");
    mb.add(menu);
    MenuItem mi = new MenuItem("Exit");
    mi.addActionListener(this);
    menu.add(mi);
// end program when window is closed
    WindowListener l = new WindowAdapter()  {
    @Override
    public void windowClosing(WindowEvent ev) {
    System.exit(0);
    }
    };
this.addWindowListener(l);
// mouse event handler
MouseListener mouseListener = new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent ev) {
    x = ev.getX();
    y = ev.getY();
    repaint();
}
};
addMouseListener(mouseListener);
}

    @Override
    @SuppressWarnings("empty-statement")
    public void paint(Graphics g) {

int jumlah_1 = 1;
int ukurA = 50;
int ukurB = 500;
int ukurC = 515;
int ukurD = 515;

int n, m;
while (jumlah_1 <=20){
    //Diagonal A
    g.setColor(Color.red); 
    g.drawString("Stikom Arthabuana", n = 9*jumlah_1, ukurA+n);
   
     //Diagonal B
   g.setColor(Color.blue); 
    g.drawString("Stikom Arthabuana", n= 9*jumlah_1, ukurB-n);
   
   
    //diagonal C
    g.setColor(Color.yellow);
    g.drawString("Stikom Arthabuana", ukurC - (m=10*jumlah_1) , n = 11*jumlah_1);
   
     //diagonal D
    g.setColor(Color.black);
    g.drawString("Stikom Arthabuana", ukurD - (m=10*jumlah_1) , ukurD -( n = 11*jumlah_1));
   
    int tunggu_1 = 1;
    while (tunggu_1 <=100000000){
       tunggu_1++; }
   
    //menghapus Diagonal A
    g.setColor(Color.white); 
    g.drawString("Stikom Arthabuana", n = 9*jumlah_1, ukurA+n);
   
     //menghapus Diagonal B
   g.setColor(Color.white); 
    g.drawString("Stikom Arthabuana", n= 9*jumlah_1, ukurB-n);
   
    //menghapus diagonal C
    g.setColor(Color.white);
    g.drawString("Stikom Arthabuana",ukurC - (m=10*jumlah_1) , n = 11*jumlah_1 );
   
      //menghapus diagonal D
    g.setColor(Color.white);
    g.drawString("Stikom Arthabuana", ukurD - (m=10*jumlah_1) , ukurD -( n = 11*jumlah_1));
 
    jumlah_1++;
  
   }
 g.setColor(Color.black);
   
    String gambar ="C:\\Users\\Santi-Videl\\Documents\\NetBeansProjects\\grafikaAnimasi\\src\\grafikaanimasi\\LOGO STIKOM.png" ;
      Image Citra = new ImageIcon(gambar).getImage() ;
      g.drawImage(Citra, 230, 150, 150, 150, this);
      g.setColor(Color.black);
      g.setFont(new Font("a_SimplerClg",Font.BOLD,40));
       g.drawString("By : Videl",200,350);
    }

   


    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
     Frame frame = new GrafikaAnimasi();
    frame.setSize(600, 480);
    frame.setVisible(true);
  
    }
   
}




Semoga Bermanfaat dan Berguna...^-^








Jumat, 17 Oktober 2014


MEKANISME KOMPILASI SOURCE CODE PADA JAVA


Mengenalli Tool-Tool Yang Ada Pada Java Yaitu Macam-Macam JDK...

Membuat program dengan bahasa pemrograman Java memerlukan beberapa perangkat bantu (tool). Perangkat bantu ini digunakan untuk menulis kode sumber, menguji, dan mendebug program yang dibuat. Java Developer’s Kit (JDK) adalah kumpulan tool yang dapat diunduh (didownload) secara gratis dari situs Sun Mycrosistem. Setidaknya ada 7 program bantu (tool) yang tersedia pada Java Developer’s Kit (JDK), seperti yang dijelaskan dalam tabel berikut ini :


Nama Program Bantu
Penjelasan
Javac
Kompilator Java untuk mengubah file sumber ke dalam file yang dapat dieksekusi. File ini disebut  file  byte  code  dan  memiliki  ekstensi
 .class.
Java
Intepreter Java untuk mengeksekusi file kelas (.class) atau file byte code.
Jdb
Debugger Java, yang bekerja seperti intepreter mengeksekusi kelas Java dan juga memiliki ke-mampuan untuk menghentikan eksekusi pro-gram pada titik-titik henti terpilih dan untuk menampilkan nilai-nilai variabel kelas. Kemam-puan ini penting untuk mencari kesalahan program.
javap
Disassembler Java, menerima file byte code dan menampilkan kelas, variabel dan metode yang telah dikompilasi menjadi byte code. Program bantu ini juga mengidentifikasi instruk-si yang digunakan untuk mengimplementasi-kan tiap-tiap metode. Anda dapat mengguna-kan program bantu ini untuk mendapatkan kode sumber dari kelas Java yang sudah terkom-pilasi.
appletviewer
Appletviewer adalah alat bantu (tool) untuk menampilkan applet Java yang berada di dalam web pada sistem lokal maupun pada situs web yang dapat diakses. Program bantu (tool) ini dapat digunakan untuk menguji applet yang anda buat.
javadoc
Program bantu dokumentasi otomatis yang digunakan untuk mengkonversi kode sumber Java ke dalam file Hypertext Markup Language (HTML).
javah
Program bantu file header C, digunakan untuk membangkitkan header bahasa C. File yang dibangunkan dipakai untuk mengembangkan kelas Java yang dibuat dari bahasa selain Java (bahasa C).










MEKANISME KOMPILASI DAN EKSEKUSI APLIKASI JAVA


Untuk membuat kode program bahasa Java dapat menggunakan text editor seperti notepad (Microsoft Windows) atau vi (Linux). Kode program Java harus disimpan dalam file dengan ekstensi .java, misalnya hello.java, latihan.java dan sebagainya. Perlu diperhatikan program Java memiliki case sensitive, artinya antara huruf besar dan huruf kecil dibedakan. Jadi harus berhati-hati dalam membuat sebuah program Java.

Setelah itu program java yang sudah disimpan di dalam file harus dikompilasi dengan javac yang telah ada di dalam Java Development Kit (JDK). Hasil dari kompilasi kode sumber program Java adalah file berekstensi .class yang merupakan byte-code Java yang berupa kode-kode mesin yang dihasilkan Java Virtual Machine (JVM), kemudian JVMlah yang akan mengintepretasikan kode-kode tersebut ke kode native atau kode-kode mesin dari arsitektur yang bersangkutan. Sehingga program Java dapat dijalankan (dieksekusi) di semua platform, baik Sun Solaris, Windows 9x/NT, Linux atau sistem operasi lain yang mendukung Java Platform.

 

Sekian dulu yaa….. semoga bermanfaat  dan sampai jumpa pada Tugas Berikutnya .. ^-^

handapeunpost

Blogroll

Pages

Diberdayakan oleh Blogger.

Popular Posts

Blogroll

Search

Popular Posts