Langsung ke konten utama

Part 6 : Menampilkan Histogram di Java

Artikel ini menyambung tulisan saya yang sebelumnya mengenai pengolahan citra khususnya tentang Histogram.

Setelah sebelumnya saya menulis tentang pengertian histogram,kali ini saya akan melanjutkan teknisnya dalam pembuatan histogram.

Langkah langkahnya sebagai berikut.
  1. ambil gambar yang akan di tampilkan histogramnya
  2. set nilai x = 0
  3. jika x<tinggi gambar,maka lanjutkan ke langkah 3,jika tidak,panggil fungsi menampilkan histogram
  4. set nilai y = 0
  5. jika y < lebar gambar,lanjutkan ke langkah 6,jika tidak kembali ke langkah 2 dengan x + 1 
  6. ambil nilai RGB dari piksel (y,x)
  7. jadikan grey dengan rumus grey = Red+Green+Blue / 3
  8. Tambahkan 1 nilai untuk array nilai intensitas grey  : histogram[grey] += 1
  9. kembali ke langkah 5 dengan nilai y+1
  10. selesai
Dan jika di gambarkan dalam bentuk flowchart kira kira seperti ini





Nah



Nah dari langkah tersebut,berikut implementasinya di java

dan dengan percobaan gambar berikut


didapat hasil histogram seperti ini





Catatan : Gambar yang saya olah tersebut adalah gambar jpg

Nah,kira kira sudah paham ?? ayau malah bingung ??
 Source code sengaja saya jadikan gambar agar agan mau mencoba ngoding langsung dan gak sekedar copy paste dan juga karena saya males koding ulang,hehehe....
Kalo ada uneg uneg,pertanyaan,atau koreksi dari tulisan ini monggo ditulis di kolom komentar saya terima dengan senang hati.Akhir kata dari saya sampai jumpa di lain kesempatan terima kasih

Komentar

  1. Terimakasih catatannya . bermanfaat sekalii ,

    saya mau tanya , kenapa citra harus dirubah menjadi citra abu ? berpengaruh ke diagram histogramnya tidak?

    BalasHapus
    Balasan
    1. terima kasih. untuk citra abu itu tergantung kebutuhan, dan untuk citra abu level histogram untuk RGB semua sama

      Hapus
  2. Balasan
    1. sudah pakai library jfreechart gan ? soalnya untuk menampilkan grafik menggunakan library jfreechart

      Hapus
    2. gan ada tutorial masukin library jfreechart?

      Hapus
    3. mungkin dilain kesempatan bisa saya tulis cara pakai jfreechart, untuk saat ini belum

      Hapus
    4. javax.imageio.IIOException: Can't read input file! eror gan

      Hapus
    5. mungkin path filenya salah gan, jadi filenya tidak ditemukan

      Hapus
    6. kok outputnya ga keluar ya gan padahal ga ada eror dab build succes

      Hapus
  3. Kalau buat nya dari 1000 data acak bagaimana ya? Mohon pencerahannya 🙏🏻

    BalasHapus
  4. kak izin bertanya gambarnya harus disimpan dimana ya agar terbaca program

    BalasHapus

Posting Komentar

Postingan populer dari blog ini

Contoh Perhitungan Algoritma Perceptron

      Melanjutkan tulisan saya sebelumnya tentang algoritma perceptron,kali ini saya akan menulis tentang conto perhitungan manual algoritma perceptron. Untuk contoh kasusnya saya menggunakan data logika AND. Cekidot.... Algoritma      Data yang kita gunakan sebagai contoh adalah data logika AND sebagai berikut: x1 x2 target 0 0 0 0 1 0 1 0 0 1 1 1       tentukan bobot awal secara acak, saya pakai contoh w1 = 0,w2 =0, learning rate = 1, bias = 0,maksimal epoh = 10. Disini saya memakai fungsi aktivasi undak biner. Epoh ke 1 Data ke satu x = {0,0}, bobot w = {0,0},b=0,target = 0 y_in = (x1*w1)+(x2*w2)+b = (0*0)+(0*0)+0 = 0 y = sign(0) = 1 karena y != target maka hitung error dan update bobot  error = target - y = 0 - 1 = -1 w1_baru = w1_lama +(learning_rate*error*x1)                = 0 + (1*(-1)*0) = 0 w2_baru = w2_lama +(learning_rate*error*x2)                = 0+(1*(-1)*0) = 0

Contoh Perhitungan Algoritma Learning Vector Quantization

Melanjutkan tulisan saya tentang algoritma Learning Vector Quantization yang lalu, kali ini saya akan melanjutkan dengan contoh perhitungan manual. Berikut ini contoh data yang akan kita hitung. No X1 X2 X3 X4 target 1 0 1 1 0 0 2 0 0 1 1 1 3 1 1 1 1 0 4 1 0 0 1 1 pada contoh di atas, saya menggunakan 4 data sebagai data training beserta target yang bertujuan untuk mendapatkan bobot yang akan digunakan pada proses klasifikasi. Bobot awal adalah { 1, 1, 1, 0} dan { 1, 0, 1, 1} dengan learning rate 0,05 dengan fungsi pembelajaran = 0,1. Pelatihan Iterasi ke 1 1. Data ke 1 { 0, 1, 1, 0} dengan target 0, bobot = {{ 1, 1, 1, 0},{ 1, 0, 1, 1}}      - menghitung bobot untuk masing masing output :          kelas 0 = sqrt(((0-1)^2)+((1-1)^2)+((1-1)^2)+((0-0)^2)) = 1         kelas 1 = sqrt(((0-1)^2)+((1-0)^2)+((1-

Pemrograman Berorientasi Object - Overloading dan Overriding

       Function atau method overloading dan override adalah fitur yang sangat mendasar dan berguna dari bahasa OOP manapun. Dalam tutorial ini kita akan membahas implementasi metode overloading dan override di php. Di sini pertama kita akan membahas dasar-dasar overloading dan override. Setelah eksplorasi dasar kita akan menerapkan overloading dan override di php. Sebelum melangkah lebih jauh, saya mengasumsikan bahwa Anda memiliki pengetahuan dasar tentang class dan pewarisan di php. Anda juga memiliki pemahaman tentang magic method di php. Magic method karena overloading di php bisa di implmentasikan dengan menggunakan magic method. Overriding        Arti dasar dari overriding di OOP sama dengan arti kata sebenarnya. Dalam arti kata sebenarnya dari overriding adalah menggantikan perilaku orang tua yang sama pada anak. Ini sama dengan override method di OOP. Dalam arti OOP, override adalah mengganti method class induk di class anak. Atau dengan method kata kunci sederhana yang me