Pengolahan Citra (Teori Konvolusi)



Teori Konvolusi

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. 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.

Histogram

Histogram adalah representasi grafis untuk distribusi warna dari citra digital. Sumbu ordinat vertikal merupakan representasi piksel dengan nilai tonal dari tiap-tiap deret bin pada sumbu axis horizontalnya. Sumbu axis terdiri dari deret logaritmik bindensitometry yang membentuk rentang luminasi atau exposure range yang mendekati respon spectral sensitivity visual mata manusia. Deret bin pada density yang terpadat mempunyai interval yang relatif sangat linear dengan variabel mid-tone terletak tepat di tengahnya.

Pada umumnya, sebuah histogram hanya memetakan seluruh nilai tonal dari citra digital pada bin luminasi masing-masing. Nilai tonal tersebut telah tersedia dalam color space yang umum digunakan adalah sRGB dan AdobeRGB yang mempunyai nilai gamma γ = 2,2.

Informasi yang didapat dari Histogram:

  • Puncak histogram → intensitas pixel yangpaling menonjol.
  • Lebar puncak → rentang kontras.
  • Over‐exposed (terlalu terang) dan under‐exposed (terlalu gelap) memiliki rentang kontras sempit.
  • Citra yang baik mengisi daerah derejatkeabuan secara penuh dan merata pada setiap nilai intensitas pixel.


Perataan Histogram

Teknik perataan histogram merupakan gabungan antara penggeseran 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. Dengan kata lain, Tujuan dari perataan histogram ini adalah untuk memperoleh penyebaran histogram yang merata, sedemikian sehingga setiap derajat keabuan memiliki jumlah pixel yang relative sama.

Perataan histogram mengubah derajat keabuan suatu pixel (r) dengan derajat keabuan yang baru dengan suatu fungsi transformasi T, dimana s=T(r).

Sifatnya

– Nilai s adalah pemetaan 1 ke 1 dari r, sehingga r dapat diperoleh dari transformasi invers

r = T-1(s)  , 0 <= s <= 1

– Untuk 0<= ri <= 1, maka 0 <= T(r) <=

Seperti yang anda sekalian ketahui sebelumnya, bahwa dari sekian banyaknya warna yang ada dalam suatu gambar itu terdiri atau terbentuk dari perpaduan tiga warna dasar yaitu merah, hijau, dan biru atau yang lebih dikenal dengan sebutan ‘RGB’. Histogram suatu gambar ini bertujuan untuk menampilkan tingkat masing-masing RGB dari suatu gambar.

Fungsi yang disediakan MATLAB untuk membuat histogram dari gambar yaitu dengan fungsi imhist(matrik_1_dimensi_image).Perlu diperhatikan bahwa imhist hanya dapat digunakan untuk matrik image 1 dimensi sehingga bila diimplementasikan pada matriks gambar maka hanya berupa matriks merah saja, hijua saja, biru saja atau grayscale.

Algoritma

Misalkan citra digital memiliki L derajat keabuan, yaitu dari nilai 0 sampai L – 1 (misalnya pada

citra dengan kuantisasi derajat keabuan 8-bit, nilai derajat keabuan dari 0 sampai 255). Secara

matematis histogram citra dihitung dengan rumus sebagai berikut :


dimana :

ni = jumlah pixel yang memiliki derajat keabuan i

n = jumlah seluruh pixel di dalam citra

Plot hi versus fi dinamakan histogram. Secara grafis histogram ditampilkan dengan diagram batang. Nilai ni telah dinormalkan dengan membaginya dengan n. Nilai hi berada di dalam selang 0 sampai 1.

Pada MatLab, untuk membuat Histogram dari sebuah gambar / citra, cukup dengan memanggil fungsi imhist.

Pertama, inisialisasikan gambar yang akan digunakan. Letakkan gambar dalam satu direktori yang sama dengan file histogram. Kemudian gambar ditampilkan dengan menggunakan sintak imshow.

Dengan menggunakan MATLAB algoritma diatas dapat diimplementasikan sebagai mana yang akan saya contohkan berikut:

i = imread('foto.jpg');

k = rgb2gray(i);

j = histeq(k);

subplot(2,2,1),imshow(i);

subplot(2,2,2),imshow(j);

subplot(2,2,3),imhist(k);

subplot(2,2,4),imhist(j);















Dalam MATLAB, untuk membuat Perataan Histogram bisa menggunakan fungsi histeq. Mula-mula gambar dikonversikan ke derajat pengabuan, kemudian dengan gunakan citra truecolor yaitu RGB dengan warna gray (abu-abu) dengan perintah ‘rgb2gray’.

HASIL

Berikut output program yang telah kita buat, dimana Histogram sebelah kiri adalah histogram dari gambar asli dan sebelah kanan Histogram dari gambar yang telah diubah ke mode GrayScale.






















Sekian tutorial dari saya, semoga bermanfaat!!







"Sumber: https://resariski.wordpress.com/2011/12/04/histogram-dan-perataan-histogram/"

Tugas Pengolahan Citra (Definisi Pengolahan Citra dan Contoh Aplikasi Pengolahan Citra dengan MATLAB GUI.

  • DEFINISI PENGOLAHAN CITRA
Citra atau Image merupakan istilah lain dari gambar, yang merupakan informasi berbentuk visual. Suatu citra diperoleh dari penangkapan kekuatan sinar yang dipantulkan oleh objek. Ketika sumber cahaya menerangi objek, objek memantulkan kembali sebagian cahaya tersebut. Pantulan ini ditangkap oleh alat-alat pengindera optik, misalnya mata manusia, kamera, scanner dan sebagainya. Bayangan objek tersebut akan terekam sesuai intensitas pantulan cahaya. Ketika alat optik yang merekam pantulan cahaya itu merupakan mesin digital, misalnya kamera digital, maka citra yang dihasilkan merupakan citra digital. Pada citra digital, kontinuitas intensitas cahaya dikuantisasi sesuai resolusi alat perekam. 

Suatu citra adalah fungsi intensitas 2 dimensi f(x, y), dimana x dan y adalah koordinat spasial dan f pada titik (x, y) merupakan tingkat kecerahan (brightness) suatu citra pada suatu titik. Citra digital adalah citra f(x,y) yang telah dilakukan digitalisasi baik koordinat area maupun brightness level. Nilai f di koordinat (x,y) menunjukkan brightness atau grayness level dari citra pada titik tersebut. 

Citra Digital adalah representasi dari sebuah citra dua dimensi sebagai sebuah kumpulan nilai digital yang disebut elemen gambar atau piksel. Piksel adalah elemen terkecil yang menyusun citra dan mengandung nilai yang mewakili kecerahan dari sebuah warna pada sebuah titik tertentu. Umumnya citra digital berbentuk persegi panjang atau bujur sangkar (pada beberapa sistem pencitraan ada pula yang berbentuk segienam) yang memiliki lebar dan tinggi tertentu. Ukuran ini biasanya dinyatakan dalam banyaknya piksel sehingga ukuran citra selalu bernilai bulat. Setiap piksel memiliki koordinat sesuai posisinya dalam citra. Koordinat ini biasanya dinyatakan dalam bilangan bulat positif, yang dapat dimulai dari 0 atau 1 tergantung pada sistem yang digunakan. Setiap piksel juga memiliki nilai berupa angka digital yang merepresentasikan informasi yang diwakili oleh piksel tersebut. Format data citra digital berhubungan erat dengan warna. Pada kebanyakan kasus, terutama untuk keperluan penampilan secara visual, nilai data digital merepresentasikan warna dari citra yang diolah. Format citra digital yang banyak dipakai adalah Citra Biner (monokrom), Citra Skala Keabuan (gray scale), Citra Warna (true color), dan Citra Warna Berindeks. 

Pengolahan citra adalah sebuah proses pengolahan yang inputnya adalah citra. Otuputnya dapat berupa citra atau sekumpulan karakteristik atau parameter yang berhubungan dengan citra. Istilah pengolahan citra digital secara umum didefinisikan sebagai pemrosesan citra dua dimensi dengan komputer. Dalam definisi yang lebih luas, pengolahan citra digital juga mencakup semua data dua dimensi. Citra digital adalah barisan bilangan nyata maupun kompleks yang diwakili oleh bit-bit tertentu. 
Pengolahan citra memiliki beberapa fungsi, diantaranya adalah: 
  1. Digunakan sebagai proses memperbaiki kualitas citra agar mudah diinterpretasi oleh manusia atau komputer. 
  2. Digunakan untuk Teknik pengolahan citra dengan mentrasformasikan citra menjadi citra lain. Contoh : pemampatan citra (image compression) Sebagai proses awal (preprocessing) dari komputer visi. 

Pengolahan citra dapat dibagi kedalam tiga kategori yaitu : 
  1. Kategori rendah melibatkan operasi-operasi sederhana seperti pra-pengolahan citra untuk mengurangi derau, pengaturan kontras, dan pengaturan ketajaman citra. Pengolahan kategori rendah ini memiliki input dan output berupa citra. 
  2. Pengolahan kategori menengah melibatkan operasi-operasi seperti segmentasi dan klasifikasi citra. Proses pengolahan citra menengah ini melibatkan input berupa citra dan output berupa atribut (fitur) citra yang dipisahkan dari citra input. Pengolahan citra kategori melibatkan proses pengenalan dan deskripsi citra. 
  3. Pengohalan kategori tinggi ini termasuk menjadikan objek-objek yang sudah dikenali menjadi lebih berguna, berkaitan dengan aplikasi, serta melakukan fungsi-fungsi kognitif yang diasosiasikan dengan vision.

  • CONTOH APLIKASI DENGAN MATLAB GUI
Berikut saya akan memberikan tutorial cara membuat citra berwarna (RGB) menjadi hitam putih (biner) dengan menggunakan Graphical User Interface  (GUI) MATLAB.
Langkah-langkahnya yaitu:
  1. Pertama kita buat dulu rancangan GUI MATLAB yang terdiri dari 2 axes, 3 pushbutton, 1 slider, dan 1 edit text seperti gambar berikut ini
  2. Kemudian kita hapus xTick, yTick, dan zTick pada masing-masing axes agar axes menyesuaikan ukuran gambar yang kita akan input nantinya.
  3. Lalu kita ubah string pada masing-masing pushbuttton dengan nama Open Image, Grayscale, dan Save Image agar lebih menarik.
  4. Untuk edit text kita hapus saja stringnya sehingga tidak muncul nama apapun.
  5. Selanjutnya kita ubah slider dengan nilai Min 0 dan nilai Max 255 seperti berikut:
  6. Jika tampilan sudah seperti diatas maka kita klik kanan pada salah satu push button  Klik View Callbacks – Pilih Callback akan muncul Editor yang berisi script-script. Berikut listing programnya:





  7. Apabila listing programnya sudah benar sesuai diatas maka selanjutnya kita run programnya akan seperti ini:
  8. Mari kita coba klik Open Image, dan kita pilih gambar yang akan diproses:
  9. Apabila kita klik Grayscale maka hasilnya:
  10. Kita coba geser nilai Slider maka hasilnya:
  11. Citra hitam putih yang sudah kita rubah bisa kita save dengan meng-klik Save Image seperti berikut:

Sekian tutorial yang dapat say berikan, semoga bermanfaat. Terimakasih



"Sumber:https://pemrogramanmatlab.wordpress.com/2016/09/30/thresholding_citra/#more-17 , http://www.romlisapermana.com/2015/07/pengertian-citra-dan-pengolahan-citra.html"

Pengantar Algoritma & Pascal

PENGANTAR LOGIKA DAN ALGORITMA DENGAN PASCAL

Pengertian LOGIKA:
Logika berasal dari bahasa Yunani yaitu LOGOS yang berarti ilmu. Logika pada dasarnya filsafat berpikir. Berpikir berarti melakukan suatu tindakan yang memiliki suatu tujuan. Jadi pengertian Logika adalah ilmu berpikir / cara berpikir dengan berbagai tindakan yang memiliki tujuan tertentu.

Pengertian ALGORITMA:
Pada Merriam-Webster’s Collegiate Dictionary, istilah algoritma diartikan sebagai prosedur langkah demi langkah untuk memecahkan masalah atau menyelesaikan suatu tugas. Kamus Besar Bahasa Indonesia (KBBI) mendefinisikan algoritma sebagai urutan logis pengambilan keputusan untuk pemecahan masalah.

Alat Bantu untuk menuliskan Logika dan Algoritma, salah satunya adalah FLOWCHART.

Pengertian FLOWCHART:
gambaran dalam bentuk diagram alir dari algoritma dalam suatu program atau prosedur sistem secara logika, yang menyatakan arah alur program dalam menyelesaikan suatu masalah.

SIMBOL Flowchart

Pedoman-pedoman dalam Membuat Flowchart:
1         Bagan alir sebaiknya digambar dari atas ke bawah dan mulai dari bagian kiri dari suatu halaman.
2         Kegiatan di dalam bagan alir harus ditunjukkan dengan jelas.
3         Harus ditunjukkan dari mana kegiatan akan dimulai dan dimana akan berakhirnya (diawali dari satu titik START dan diakhiri dengan END).
4         Masing-masing kegiatan di dalam bagan alir sebaiknya digunakan suatu kata yang mewakili suatu pekerjaan, misalnya:
        "Persiapkan" dokumen
        "Hitung" gaji
5         Masing-masing kegiatan di dalam bagan alir harus di dalam urutan yang semestinya.
6         Kegiatan yang terpotong dan akan disambung di tempat lain harus ditunjukkan dengan jelas menggunakan simbol penghubung.
7         Gunakanlah simbol-simbol bagan alir yang standar.

Secara garis besar, Ada 3 bagian utama dalam flowchart :
INPUT
1
PROSES
2
OUTPUT
3


Contoh:
Buat algoritma dan Flowchart untuk Menghitung Luas Persegi Panjang:

Pekerjaan:
Rumus:
LuasPersegiPanjang = Panjang x Lebar
Algoritma:
1         Tentukan nama variabel yang akan menampung data Panjang, lebar dan luas persegi panjang.
2         Masukkan (inputkan) data Panjang dan Lebar pada variabel yang sudah ditentukan.
3         Hitung Luas persegi panjang.
4         Tampilkan (outputkan) Luas persegi panjang.

Flowchart:
START
END
Luas, Panjang, Lebar
Inputkan:
 Panjang dan lebar
Hitung:
Luas Persegi panjang
Outputkan:
 Luas Persegi Panjang

Latihan:
Buat algoritma dan Flowchart untuk Menghitung:
1         Luas Segitiga
2         Luas Lingkaran

IMPLEMENTASI DALAM PROGRAM
(Sebagai contoh: Bahasa Pemrograman Pascal)

Pengertian PROGRAM:
Kumpulan instruksi (statements) yang disusun secara logis untuk memecahkan suatu masalah. Instruksi-instruksi yang digunakan disesuaikan dengan jenis bahasa pemrograman yang digunakan (reserved word yang disediakan).

Stuktur Penulisan Pascal:
Program Nama_Program;
uses
     . . .  {Unit-unit yang dipakai} ;
label
     . . .  {label-label yang dipakai } ;
const
     . . .  {pengumuman tetapan-tetapan} ;
type
     . . .  { pengumuman tipe-tipe data };
var
     . . .  { pengumuman peubah-peubah };

procedure Nama_Prosedur;
begin
    . . .
end;

Function Nama_Fungsi;
begin
    . . .
end;

{  Program utama   }
begin
    . . .
end.


Perintah Input :
Perintah Pascal yang digunakan untuk memasukkan/menginputkan data.
Bentuk perintah:
Read dan Readln
Struktur penulisan:
Read(nama variabel);
Readln(nama Variabel)

Perintah Output:
Perintah Pascal yang digunakan untuk menampilkan/mengoutputkan data.
Bentuk perintah:
Write : setelah menampilkan data atau teks, kursor berada tepat disamping kanan data yang ditampilkan.
Write : setelah menampilkan data atau teks, kursor berada pada baris berikutnya.
Struktur penulisan:
write(nama variabel);
write(‘teks’);
writeln(nama Variabel);
writeln(‘teks’);

Contoh:
Buat program sederhana untuk Menghitung Luas Persegi Panjang:

Program LuasPersegiPanjang;
Var
Luas, Panjang, Lebar : integer;
Begin
Readln(panjang);
Readln(Lebar);Luas:= Panjang*Lebar;
Writeln(‘Luas Persegi  Panjang adalah:’,Luas);
Readln;
End.
Tampilan pada lembar kerja Pascal:

Menjalankan program dengan perintah:
Ctrl+F9(tekan tombol Ctrl dan F9 bersama-sama).

Apabila Panjang diisi 7 dan lebar diisi 8 maka hasil perintah diatas tampil sbb:
Latihan:
Buat program sederhana untuk Menghitung:
1         Luas Segitiga
2         Luas Lingkaran


 STRUKTUR KENDALI  “IF’

Struktur kendali aliran adalah suatu bentuk/struktur yang memiliki peranan khusus  untuk mengatur aliran urutan pengerjaan operasi atau beberapa operasi tertentu.
Salah satu contoh pernyataan kendali yaitu pernyataan if .
Pernyataan if (if statement) akan memeriksa suatu persyaratan dan menentukan  apakah syarat tersebut benar atau salah, kemudian melakukan pekerjaan sesuai dengan nilai pernyataan tersebut.
Struktur Penulisan:
Berikut adalah bentuk-bentuk dari pernyataan if yang sering digunakan :
1         If dengan satu pernyataan (statement)
If (kondisi) then pernyataan ;
1         If dengan dua atau lebih pernyataan (statement)
If (kondisi) then
begin
   pernyataan1 ;
   pernyataan2 ;
   …..
end;
2         If dan else
If (kondisi) then
begin
   pernyataan1 ;
   pernyataan2 ;
   …..
end
else
begin
   pernyataan1 ;
   pernyataan2 ;
   …..
   end;
Dari bentuk bentuk pernyataan if di atas yang harus diperhatikan adalah untuk pernyataan if dan else, pernyataan-pernyataan setelah then tanpa menggunakan “;”. Dengan kata lain jika pernyataan setelah then hanya terdiri dari satu pernyataan saja makan pernyataan tersebut tanpa menggunakan “;”, namun jika pernyataan setelah then terdiri dari lebih dari satu pernyataan makan setelah end tanpa menggunakan “;”.

Latihan:
Buat flowchart dan program sederhana untuk menampilkan bilangan terbesar.

1                      


START
END
Input :
Nilai A
Nilai B
A > B
Terbesar = B
Terbesar = A
Output :
Nilai Terbesar
Tidak
Ya
Begin

Readln (A);
Readln (B);

If A > B then
   Terbesar := A
Else
   Terbesar := B;


Writeln(Terbesar);


End.



Sekian postingan saya, mungkin apabila ada tambahan bisa dicomment yaa..