PENGENALAN DASAR CITRA - andyusuf-informatika

New Post

Sabtu, 27 Mei 2017

PENGENALAN DASAR CITRA

Sebelum kita membahas pada materi 'Pengenalan Dasar Citra' maka sebaiknya kita sudah membahas materi sebelumnya yaitu 'Pengantar Pengolahan Citra'. Dimana pada materi tersebut telah membahas : pengertian pengolahan citra digital, aplikasi pengolahan citra, dan prinsip dasar dalam pengolahan citra.



    1. Representasi Citra Digital

    Citra digital dibentuk oleh kumpulan titik yang dinamakan piksel (Pixel atau picture element) Setiap piksel digambarkan sebagai satu kotak kecil dan setiap piksel mempunyai koordinat posisi. Sistem koordinat yang dipakai untuk menyatakan citra digital ditunjukkan pada gambar dibawah.
    Sistem koordinat citra berukuran M x N
    (M baris & N kolom)

    Dengan sistem koordinat yang mengikuti asas pemindaian pada layar TV standar itu, sebuah piksel mempunyai koordinat berupa (x,y).
    Dalam hal ini :
    • X menyatakan posisi kolom ;
    • Y menyatakan posisi baris ;
    • piksel pojok kiri-atas mempunyai koordinat (0,0) dan piksel pada pojok kanan-bawah mempunyai koordinat (N-1, M-1). 
    Catatan : 
     Dengan menggunakan notasi pada Octave dan MATLAB, citra dinyatakan dengan f(y, x)

    Gambar citra dan  nilai penyusun piksel


    Gambar Notasi piksel dalam citra



    2. Kuantisasi Citra

    Citra digital sesungguhnya dibentuk melalui pendekatan yang dinamakan kuantisasi. Kuantisasi adalah prosedur yang dipakai untuk membuat suatu isyarat yang bersifat kontinu kedalam bentuk diskret. Untuk mempermudah pemahaman konsep ini, lihatlah pada gambar dibawah, (a) menyatakan isyarat analog menurut perjalanan waktu t, (b) menyatakan isyarat diskret.

    Gambar perbandingan isyarat analog dan isyarat digital

    Pada isyarat digital, nilai intensitas citra dibuat diskret atau terkuantisasi dalam jumlah nilai bulat. Citra digital akan lebih baik, apabila ukuran piksel diperkecil atau jumlah piksel diperbanyak.

    Bagaimana kalau gambar mengandung unsur warna (tidak sekedar hitam putih)? Prinsipnya sama saja, tetapi sebagai pengecualian warna hitam diberikan tiga unsur warna dasar, yaitu merah (R = red), hijau (H = green), dan biru (B = blue). Seperti halnya pada citra monokrom (hitam-putih) standar, dengan variasi intesitas dari 0 hingga 255, pada citra berwarna terdapat 16.777.216 variasi warna apabila setiap komponen R, G, dan B mengandung 256 aras intensitas. Namun, kepekaan mata manusia untuk membedakan macam warna yang sangat terbatas, yakni jauh dibawah enam belas juta lebih tersebut.

    Tabel jangkauan nilai pada citra keabuan
     Tabel jangkauan nilai pada citra berwarna

    Dalam pengolahan citra, kuantisasi aras intensitas menentukan kecermatan hasilnya. Dalam praktik, jumlah aras intensitas piksel dapat dinyatakan dengan kurang dari 8 bit.
    Contoh pada gambar dibawah menunjukan citra dikuantisasi dengan menggunakan 8,5,4,3,2, dan 1 bit.

    Pada kuantisasi dengan 1 bit, jumlah level sebanyak 2(dua pangkat satu). Oleh karna itu, warna yang muncul berupa hitam dan putih saja. Perlu diketahui, penurunan jumlah aras pada tingkat tertentu membuat mata manusia masih bisa menerima citra dengan baik.


    3. Kualitas Citra

    Disamping cacah intensitas kecerahan, jumlah piksel yang digunakan untuk menyusun suatu citra mempengaruhi kualitas citra. Istilah resolusi citra biasa dinyatakan jumlah piksel pada arah lebar dan tinggi. Resolusi piksel biasa dinyatakan dengan notasi MxN dengan M menyatakan tinggi dan N menyatakan lebar dalam jumlah piksel.

    Gambar efek resolusi berdasar jumlah piksel pada citra ketika gambar disajikan dengan ukuran yang sama

    Terlihat bahwa pada resolusi tertentu citra menjadi kabur kalau dinyatakan dengan jumlah piksel yang makin sedikit.

    Resolusi spasial ditentukan oleh jumlah piksel per satuan panjang. Istilah seperti dpi (dot per inch) menyatakan jumlah piksel per inci. Misalnya, citra 300 dpi menyatakan bahwa citra akan di cetak dengan jumlah piksel sebanyak 300 sepanjang satu inci. Berdasarkan hal itu, maka citra dengan resolusi ruang spasial sebesar 300 dpi dicetak dikertas dengan ukuran lebih kecil daripada yang mempunyai resolusi ruang sebesar 150 dpi, meskipun kedua gambar memiliki resolusi piksel yang sama.


    4. Membaca Citra

    Untuk kepentingan memudahkan dalam memahami hasil proses dalam pengolahan citra, anda perlu mengenal perintah yang berguna untuk membaca citra yang tersimpan dalam bentuk file. Octave menyediakan fungsi bernama imread.
    Bentuk pemanggilannya :
         Img = imread (nama_file_citra)
    Dalam hal ini, nama_file_citra menyatakan nama file citra yang hendak dibaca dan Img menyatakan larik (array) yang menampung data citra yang dibaca. Perlu diketahui, format-format gambar yang bisa dibaca oleh imread ditujukan pada tabel dibawah ini :

    Tabel daftar format file gambar yang bisa dibaca oleh imread
    Dan

    Catatan :

    Contoh digunakan untuk membaca filecitra bernama mandrill.png yang terdapat pada folder C:\Image.
    >>Img = imread(’C:\Image\mandrill.png’);
    >>
    Catatan :


    5. Mengetahui Ukuran Citra

    Secara umum ukuran matriks Img adalah  M x N. Untuk mengetahui nilai M dan N yang sesungguhnya, dapat digunakan fungsi pada Octave yang bernama size. Contoh untuk mengetahui dimensi pada matriks Img :

    >>Ukuran = size(Img)
    Ukuran =
    512  512
    >>

    Dengan cara seperti itu, terlihat bahwa Img berisi 512 kolom piksel.
    Untuk mendapatkan jumlah baris dan kolom secara tersendiri, perlu diberikan perintah sebagai berikut :

    >> jum_baris = Ukuran(1);
    >> jum_kolom = Ukuran(2);
    >>

    Angka 1 dan 2 pada ukuran menyatakan indeks. Dengan cara seperti itu, jum_baris berisi jumlah baris pada larik Img dan jum_kolom berisi jumlah kolom pada larik Img.

    Sebagai alternatif, dapat ditulis perintah seperti berikut:

    >> [jum_baris, jum_kolom] = size(Img);

    Dengan cara seperti itu, jum_baris nerisi jumlah baris pada larikImg dan jum_kolom berisi jumlah kolom pada larikImg.


    6. Mengenal Jenis Citra

    Ada 3 jenis citra yang umum digunakan dalam proses citra, ketiga jenis citra tersebut yaitu citra berwarna, citra berskala keabuan, dan citra biner.

    1.  Citra Berwarna
    Citra berwarna atau bisa dinamakan citra RGB, merupakan jenis citra yang menyajikan warna dalam bentuk komponen R (merah), G (hijau), dan B (biru). Setiap komponen warna menggunakan 8 bit (nilainya berkisar antara 0 sampai dengan 255). Dengan demikian, kemungkinan warna yang akan disajikan mencapai 255 x 255 x 255 atau 16.581.375 warna. Berikut dibawah tabel menunjukkan contoh warna dan nilai R,G, dan B.

    Tabel warna dan nilai penyusun warna


    Ruang RGB dalam ruang berdimensi tiga


    Gambar citra berwarna dan representasi warnanya, setiap piksel dinyatakan dengan nilai R, G, dan B


    Catatan :
     Citra berwarna pun dibaca melalui imread.
    contoh :
    >> Kota = imread('C:\Image\innsbruckcity.png');
    Nah sekarang dapat dicoba untuk mengenakan size pada kota :
    >>size(Kota)
    ans =
    747 500 3
     >>

    Hasilnya menunjukkan bahwa kota berupa larik berdimensi tiga, dengan dimensi ketiga berisi tiga buah nilai. Hal inilah yang membedakan dengan citra berskala keabuan. Secara umum, larik hasil pembacaan citra berwarna dapat digambarkan seperti berikut.

    Gambar hasil pembacaan citra berwarna

    Dimensi ketiga menyatakan komponen R, G, B  Indeks pertama menyatakan komponen R, indeks kedua menyatakan komponen G, dan indeks ketiga menyataka komponen B.
    Berikut adalah cara untuk mendapatkan komponen R, G, dan B pada larik kota didepan :

    >> R = Kota(:,:,1);
    >> G = Kota(:,:,2);
    >> B = Kota(:,:,3);

    Untuk menampilkan gambar, imshow bisa digunakan seperti kalau mau menampilkan gambar berskala keabuan. Contoh :

    >>figure(1);
    >>imshow(Kota);

    Hasilnya seperti berikut :


    2.  Citra Berskala Keabuan
    Sesuai dengan nama yang melekat, citra jenis ini mengenai gradasi warna hitam dan putih, yang tentu saja menghasilkan efek warna abu-abu. Pada jenis gambar ini, warna dinyatakan dengan intensitas. Dalam hal ini, intensitas berkisar antara 0 sampai dengan 255. Nilai 0 menyatakan hitam dan 255 menyatakan putih.
    Contoh citra berskala keabuan juga bisa dilihat dari konversi citra yang mengubah citra berwarna menajadi citra keabuan atau sebaliknya.


    3.  Citra Biner
    Citra biner adalah citra dengan setiap piksel hanya dinyatakan dengan sebuah nilai dari dua buah kemungkinan (yaitu nilai 0 dan 1). Nilai 0 menyatakan warna hitam dan 1 menyatakan warna putih. Citra jenis ini banyak dipakai dalam pemrosesan citra, misalnya untuk kepentingan memproleh tepi bentuk suatu objek. Sebagai contoh, perhatikan gambar dibawah berikut : bagian kiri menyatakan citra beraras keabuan, sedangkan bagian kanan adalah hasil konversi kecitra biner.



     Gambar citra dikanan menyatakan bentuk citra dikiri dengan mengabaikan komposisi warna

    Contoh cara membaca dan menampilakn biner.
    >>Img = imread('c:\Image\daun_bin.png');
    >>imshow(Img);
    >>

    Hasilnya seperti berikut.


    7. Mengonversi Jenis Citra

    Dalam praktik, seringkali diperlukan untuk mengonversi citra berwarna kedalam bentuk citra berskala keabuan meningat banyak pemrosesan citra yang bekerja pada skala keabuan. Namun, terkadang citra berskala keabuan pun perlu dikonversikan kecitra biner, mengingat beberapa operasi dalam pemrosesan citra berjalan pada citra biner.

    Bagaimana cara mengubah citra berwarna kedalam citra berskala keabuan?
    Secara umum citra berwarna dapat dikonversikan kecitra berskala keabuan melalui rumus :
    Dengan R menyatakan nilai komponen merah, G menyatakan nilai komponen hijau, dan B menyatakan nilai komponen biru. Misalnya sebuah piksel mempunyai komponen R,G dan B sebagai berikut :
    R = 50
    G = 70
    B = 61
    Jika a, b, dan c pada persamaan dibuat sama akan diperoleh hasil seperti berikut :
    I = (50 + 70 + 60) / 3 = 60
    Salah satu contoh rumus yang biasa dipakai untuk mengubah ke skala keabuan yaitu
    Contoh menunjukkan cara melakukan konversi dari citra berwarna kecitra biner.
    >>Img = imread('C:\Image\innsbruckcity.png');
    >> Abu=uint8(0.2989 * double(Img(:,:,1)) + ...
    0.5870*double(Img(:,:,2)) + ...
    0.1141 * double(Img(:,:,3)));
    >>imshow(Abu);

    Catatan :

    Hasilnya sebagai berikut.

    Bagaimana halnya kalau dikehendaki untuk mengonversikan citra berskala keabuan ke citra biner? Strategi yang dipakai yaitu dengan menerapkan suatu nilai yang dikenal dengan nilai ambang (threshold). Nilai tersebut dipakai untuik menentukan suatu intensitas akan dikonversikan menjadi 0 atau menjadi 1. Secara matematis, konversi dinyatakan dengan rumus :
    Contoh berikut menunjukkan cara melakukan konversi dari citra berskala keabuan ke dalam citra biner.

    % KEBINER Digunakan untuk mengonversi file
    % daun_gray.png ke citra biner
    Img = imread('c:\image\andri.jpg');
    [tinggi, lebar] = size(Img);
    ambang = 210; % Nilai ini bisa diubah-ubah
    biner = zeros(tinggi, lebar);
    for baris=1 : tinggi
    for kolom=1 : lebar
    if Img(baris, kolom) >= ambang
    Biner(baris, kolom) = 0;
    else
    Biner(baris, kolom) = 1;
    end
    end
    end
    imshow(Biner);


    Sebelum mencoba program di atas, akan dibahas dulu kode yang mendasari program. Tanda % mengawali komentar.Semua tulisan dimulai dari tanda tersebut hingga akhir baris tidak dianggap sebagai perintah, melainkan sebagai penjelas bagi pembaca program. Kode

    Img= imread('c:\Image\daun_gray.png');

    Merupakan perintah untuk membaca citra daun_gray.png. Hasilnya disimpan diImg. Lalu,

    [tinggi, lebar] = size(Img);

    Berguna untuk mendapatkan lebar dan tinggi citra.

    Pernyataan

    for baris=1 : tinggi
    for kolom=1 : lebar
    ifImg(baris, kolom) >= ambang
    Biner(baris, kolom) = 0;
    else
    Biner(baris, kolom) = 1;
    end
    end
    end

    Menangani penentuan nilai 0 atau 1 pada citra biner untuk semua piksel dalam citra (ditangani dengan dua buah for). Penentuan dilakukan melalui pernyataan if. Dalam hal ini,

    Img(baris, kolom)

    Menyatakan nilai intensitas piksel pada (baris, kolom).

    Setelah

    for baris=1 : tinggi

    Berakhir, maka Biner berisi citra biner. Selanjutnya, citra ditampilkan melalui

    imshow(Biner);

    Untuk menjalankan program di depan, berikan perintah

    >>kebiner;

    Hasilnya seperti berikut.
    Gambar hasil konversi daun_grey.png ke bentuk biner
    Gambar tersebut diatas memperlihatkan berbagai bentuk hasil konversi citra dengan menggunakan berbagai nilai ambang.

    Gambar hasil konversi ke citra biner dengan berbagai nilai ambang


    Contoh-contoh yang telah dibahas memberikan gambaran tentang cara mewujudkan sendiri konversi antarjenis citra. Hal tersebut tentu saja penting untuk dipahami agar memudahkan di dalam mewujudkan sendiri penulisan program seandainya menggunakan bahasa pemrograman yang lain.Namun, sebagai penambah wawasan, sesungguhnya Octave menyediakan beberapa fungsi untuk kepentingan konversi citra. Tabel dibawah ini memperlihatkan dua fungsi penting yang terkait dengan konversi citra.

    Tabel fungsi yang disediakan Octave untuk kepentingan konversi ke aras keabuan

    Agar terbiasa dengan kedua fungsi tersebut, berikut disajikan contoh penggunaanya.
    Contoh pertama :

    >>Img= imread('C:\Image\daun_gray.png');
    >> BW = im2bw(Img, 0.6);
    >>imshow(BW);

    Hasilnya seperti berikut.

    Gambar hasil pembentukan citra biner melalui im2bw

    Adapun contoh pemakaian rgb2gray :

    >> RGB = imread('C:\Image\innsbruckcity.png');
    >> Abu = rgb2gray(RGB);
    >>imshow(Abu);

    Hasilnya seperti berikut :

    Gambar hasil pembentukan citra berskala keabuan melalui rgb2gray

    8. Menyimpan Citra

    Untuk kepentingan menyimpan citra ke dalam file, fungsi imwrite pada Octave dapat digunakan. Pemakaiannya :

    imwrite(A, nama_file)

    A dapat berupa larik dua dimensi (citra berskala keabuan) ataupunlarik berdimensi tiga (citra RGB).
    Contoh:

    >>Img = imread('C:\Image\daun_gray.png');
    >>X = 255 – Img;
    >>imwrite(X, ’negatif_daun.png’);
    X = 255 – Img;

    Digunakan untuk memperoleh citra negatif dari citra daun_gray.png. Setelah imwrite dieksekusi,akan terbentuk negatif_daun.png pada folder kerja. Hasilnya diperlihatkan pada Gambar dibawah ini:

    Gambar hasil penyimpanan citra negatif_daun.png



    Itulah pembahasan mengenai pengenalan dasar citra yang telah dibahas di atas, setelah kita selesai membahas beberapa faktor-faktor dari dasar-dasar citra diatas tersebut, maka kita akan masuk pada langkah atau pembahasan berikutnya yaitu "OPERASI PIKSEL PADA HISTOGRAM" untuk masuk pada pembahasan ini silahkan klik link dibawah ini.

    Terimakasih dan Semangat Belajar

    1 komentar:

    1. Casino Game For Sale by Hoyle - Filmfile Europe
      › casino-games gri-go.com출장샵 casino-games › casino-games › casino-games Casino Game for sale by Hoyle on Filmfile Europe. Free nba매니아 shipping for worrione most countries, no download required. Check the deals we have.

      BalasHapus