Kamis, 19 November 2009

mengubah citra kedalam bentuk Matrix

Pengolahan Citra Berwarna

Dalam analisa citra, warna merupakan deskriptor yang sangat berguna untuk menyederhanakan proses identifikasi dan ekstraksi objek pada citra

Apakah Warna?

Cahaya matahari yang dilewatkan pada prisma menghasilkan spetrum warna.‘warna’ objek yang diterima oleh penglihatan manusia ditentukan oleh cahaya dipantulkan oleh objek tersebut.

Akromatik vs Kromatik

Cahaya akromatik: tidak berwarna, hanya menggunakan

intensitas yang diukur dengan tingkat keabuan. Contoh: TV hitam-putih, citra monokrom yang kita gunakanCahaya kromatik: panjang gelombang 400~700 nm.

Tiga satuan yang digunakan untuk mendeskripsikan kualitas dari sumber cahaya akromatik:

Radiansi:

jumlah energi yang memancar dari sumber cahaya (dalam satuan watt)

Luminasi:

jumlah energi yang diterima oleh observer dari sumber cahaya (dalam satuan lumens, lm). contoh: sinar inframerah

memiliki radiansi yang besar tapi nyaris tidak dapat dilihat oleh observer

Brightness:

Deskriptor yang subjektif, mirip dengan pengertian intensitas pada akromatik, walah satu faktor penentu dalam menggambarkan sensasi warna



Warna primer vs warna sekunder (pada cahaya)

Warna primer: red (R), green (G), blue (B)

perhatikan bahwa komponen RGB saja tidak bisa menghasilkan semua spektrum warna, kecuali jika panjang gelombangnya juga dapat bervariasi

Warna sekunder:Magenta (R+B), cyan (G+B), yellow(R+G)

Campuran 3 warna primer: putih

Cara-cara untuk memberikan warna pada citra monokrom berdasarkan nilai

Keabuan, Tiga cara yang dibahas:

1. Intensity slicing and color coding

Merupakan cara yang paling mudah. Hanya perlu membuat irisan-irisannya, misalkan kita hanya ingin 3 warna:

0-100: warna merah

100-200: warna oranye

200 – 255: warna kuning





2. Gray level to color transformations

Ide: melakukan tiga transformasi independen

terhadap masing-masing komponen warna

3. Dua pendekatan pengolahan

Pengolahan per-warna:



Proses pengolahan dilakukan secara terpisah antara ketiga warna, kemudian baru digabungkan lagi

 Pengolahan langsung semua warna:Proses pengolahan dilakukan terhadap vektor [R G B] Kedua pendekatan ini dapat menghasilkan output yang sama

Representasi image kedalam Matrix

Pernahkah terpikir sama temen-temen, gimana sih cara suatu benda optic seperti kamera, baik video ataupun digital menangkap citra atau sebuah objek?

Sebenarnya objek ataupun citra yang kita tangkap itu adalaha hasil pantulan dari bayangan benda itu sendiri. Masih ingatkan pelajaran IPA waktu SD dahulu, mengapa kita tidak dapat melihat dalam gelap? Hal ini karena tidak ada cahaya, dan cahaya yang ditangkap benda tidak ada, sehingga benda tidak dapat memantulkan kembali bentuk nya. Hal ini juga diaplikasikan dalam benda optic, jadi benda optic akan memancarkan cahaya ataupun sinar, untuk men scan benda tersebut, lalu benda tersebut akan diubah posisinya kedalam bentuk matrix. Begitu pula dalam hal pembacaan warna . warna primer yaitu RGB bisa direpresentasikan dengan berbagai cara. Untuk kali ini saya akan merepresentasikannya dalam bentuk matrix 3 dimensi. Sebagai ilustrasi lihat gambar dibawah ini.



Pada gambar samping, komponen red pada lokasi (0,0), bernilai 78, green 200, dan blue 12. Di dalam program, kita dapat menuliskannya sebagai berikut.

1: const int RED = 0;

2: const int GREEN = 1;

3: const int BLUE = 2;

4:

5: f[0][0][RED] = 78;

6: f[0][0][GREEN] = 200;

7: f[0][0][BLUE] = 12;

3 baris pertama dibuat agar code mudah dibaca Nilai dari masing-masing komponen berkisar 0 sampai dengan 255 jika direpresentasikan dengan integer . warna putih didapat ketika kita memberikan nilai 255 pada setiap komponen. Sebaliknya jika kita memberikan nilai 0 pada semua komponen, kita akan mendapatkan warna hitam. teknik mencampur seperti ini sesuai dengan kenyataan. Jika kita mencampur warna merah hijau dan biru sebanyak-banyaknya, maka kita akan mendapatkan warna putih dan, jika warna hitam didapat jika kita tidak mencampur apa-apa.

int atau double?

Seperti yang telah disebutkan kalau nilai dari masing-masing komponen berkisar 0 sampai dengan 255 jika direpresentasikan dalam bentuk integer. Sebenarnya ada represenstasi yang lain, yaitu antara 0 sampai dengan 1 dalam bentuk floating point (bilangan desimal). Penggunaan floating point tentunya memiliki kelebihan dalam presisi ketim

bang memakai nilai yang diskrit. Namun demikian, penggunaanfloating point akan membuat file citra membesar.

Biasanya citra disimpan dalam representasi integer. Representasi floating point dipergunakan pada saat citra dimodifikasi. Bagaimana cara

mengubah dari representasi integer ke floating point? Mudah, tinggal membagi nilai integer dengan angka 255. Sebagai contoh, jika kita ingin mengubah nilai komponengreen.

1: double green_d = green_i / 255;

kegunaan representasi matrix

salah satunya untuk membuat suatu citra menjadi citra abu2x. yaitu dengan merata-rata semua komponen dari setiap pixel. Berikut adalah contoh singkat untuk melakukan hal tersebut.

1: for (int x = 0; x <>

2: for (i

nt y = 0; y <>

3: {

4: double rata = (f[x][y][RED] + f[x][y][GREEN] + f[x][y][BLUE]) / 3.0;

5: f[x][y][RED] = rata;

6: f[x][y][GREEN] = rata;

7: f[x][y][BLUE] = rata;

8: }


ini script yang mengubah dari gambar menjadi Matrik (angka) :

procedure TForm1.Matriks1Click(Sender: TObject);
var F : TextFile;
bowoFile : string;
temp : PByteArray;
i,j : integer;
Image : TBitmap; begin
bowoFile:='M atriks.txt ';
AssignFile(F,bowoFile);
Image := TBitmap.Create; Image.LoadFro mFile(OpenPictureDialog.FileNa me);
Image := Image1.Picture.Bitmap;

Rewr ite(F);
Memo1.Clear;
for j:=0 to Image.Height-1 do
begin
temp := Image.ScanLine[j];
i:=0;
repeat
write(F,inttostr(temp[i])+' ');
i:=i+1;
until i >= 3*Image.Width-1;
end; CloseFile(F);
Memo1.Lines.LoadFromFile(bowoF ile);
Image1.Picture.Bitmap := Image;
end;

sumber:

http://edysoftware.com/delphi/?pilih=lihat&id=208

http://ctalicious.wordpress.com/author/ctalicious/

Membuat histogram dengan Menggunakan matlab

Nama : Yuan Charlie
NPM : 50406770
Kelas : 4IA05


Tulisan ini saya buat untuk pemenuhan tugas kuliah pelajaran Pengantar Pengolahan Citra yang dibawakan oleh Bpk Eri Prasetyo Wibowo, Dr...

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.
Contoh penggunaan Histogram dari Image yaitu:
gambar=imread(‘gambarkoe.jpg’); %--------membaca file gambar apa saja
red=gambar(:,:,1); %memanggil matriks gambar yang hanya berisi piksel warna
merah
green=gambar(:,:,2);% memanggil matriks gambar yang hanya berisi piksel
warna merah
blue=gambar(:,:,3); %memanggil matriks gambar yang hanya berisi piksel
warna merah
merahgray2=0.3*red+0.5*green+0.2*blue ;
imhist(red)
imhist(green)
imhist(blue)
imhist(gray)

Contoh Hasil :