520 likes | 1.13k Views
Transformasi dan Model Warna Citra Digital. Pengolahan Citra Digital Materi 3. Eko Prasetyo Teknik Informatika UMG- UPN Veteran Jatim 2012. Representasi bit citra. Citra abu-abu. Citra biner. Citra Negatif. Seperti halnya film negatif .
E N D
Transformasidan Model Warna Citra Digital Pengolahan Citra Digital Materi 3 Eko Prasetyo TeknikInformatika UMG-UPN Veteran Jatim 2012
Representasi bit citra Citra abu-abu Citra biner
Citra Negatif • Sepertihalnya film negatif. • Hasilpengambilangambardengankamerakonvensional yang membalikcitraasli. • Jikaterdapatcitradenganjumlah gray level L dengan range [0,L-1] makacitranegatifdidapatdaritransformasinegatifsepertipadagambar (garis diagonal) denganpersamaan: s = L – 1 – r Untuk L = 256, makacitranegatifdidapatkan: >> j = 256 - 1 - f;
Transformasi Log • Sangatbergunadalampenggambarangrafikketikapadaderetannilai, disampingadaselisihnilai yang sangatkecil, jugaadaselisihnilai yang sangatbesar, • Sehinggaketikadigambardalamgrafikmakaselisih yang kecilakansulituntukdilihat. • Kurva log yang terdapatpadagambar. • Nilai input gray level yang tinggiakanmenyesuaikandengan output gray levelnyasesuaigrafik. • Meningkatkannilaicitra yang gelapdanmengkompresnilaicitra yang sangattinggi. • Transformasi Inverse log merupakankebalikandaritransformasi log • Persamaandaritransformasi log adalah: s = c log(1 + r) • c merupakankonstanta, nilai r ≥ 0 >> g=100*log10(1+f);
TransformasiPower-Law • Bentukdasar: s = cr • c danmerupakankonstantapositif. • Memetakan range sempitdari input gray level menjadi range yang lebarpada output gray level-nya. • Miripdengantransformasi log, tapidengantransformasi power-law dapatmempunyaivariasikurva yang lebihbanyakdaripadatranformasi log. >> g= im2double(f); >> g2= 1 * g.^0.4; gamma = 1 gamma = 0.1 gamma = 0.4
Contrast Stretching • Bergunauntukmeningkatkandynamic rangedaricitra yang telahdiproses. • Tidaksepertitransformasisebelumnya yang memprosessemua input gray level, pada contrast stretching yang diprosesbisasebagiandari input gray level sesuaidengangrafik yang digunakan >> g=f; >> g(g<50)=g(g<50)*0.2; >> g(g>=50 & g<150)=(g(g>=50 & g<150)-50)*2+30; >> g(g>=150)=(g(g>=150)-150)*1+200;
Histogram • Histogram adalahdasardarisejumlahteknikpemrosesancitrapada domain spasial, sepertiperbaikan, kompresidansegmentasicitra. • Histogram darisuatucitra digital dengan range tingkat [0…L-1] adalahsebuahfungsidiskrit h(rk)=nk • rkadalahtingkatkeabuanke-k • nkadalahjumlahpikseldalamcitra yang memilikitingkatkeabuanrk. • Normalisasihistrogramdilakukandenganmembagisetiapnilainkdengan total jumlahpikseldalamcitra, yang dinyatakandengan n. • Histogram yang sudahdinormalisasidinyatakandengan p(rk)= nk/n, untuk k=0,1,…,L-1. • p(rk) menyatakanestimasiprobabilitaskemunculantingkatkeabuanrk. • Jumlahdarisemuakomponen “normalized histogram” samadengan 1.
Histogram • Sumbuhorisontaldari histogram menyatakannilaitingkatkeabuanrk. • Sumbuvertikalmenyatakannilaidari h(rk)=nkatau p(rk) = nk/n (jikanilainyadinormalisasi). • >> figure, imshow(f); • >> figure, imhist(f);
Citra gelap Citra terang Citra kontrastinggi Citra kontrasrendah
Histogram Normalization • Menskalakannilaipikselsecara linear untukmenggunakansecarapenuhjangkauan yang gray-scale yang tersedia. • Transformasi yang digunakan: untuk k=0,1,2,…,L-1 disebut “histogram normalization”.
Number of pixels 6 5 4 3 2 1 Gray level Input: 4x4 image 0 1 2 3 4 5 6 7 Gray scale = [0,7] histogram Contoh Histogram Normalization (1)
No. of pixels 6 5 4 3 2 1 Gray level Output: 4x4 image 0 1 2 3 4 5 6 7 Gray scale = [0,7] histogram Contoh Histogram Normalization (3)
Histogram Equalization • Histogram equalization digunakanuntukmemetakankembalinilaipikseluntukmembuatperkiraan linear akumulasi histogram. • Transformasi yang digunakan: untuk k=0,1,2,…,L-1 disebut “histogram equalization” atau “histogram linearization”. • Fungsi yang digunakan : • h = histeq(f, b) • h merupakancitrahasilequalisasi, • f merupakanvariabelcitradan b adalahjumlah bins yang digunakandalammembentuk histogram. nilai default, b=64 padacitra 6 bit.
No. of pixels 6 5 4 3 2 1 Gray level Input: 4x4 image 0 1 2 3 4 5 6 7 Gray scale = [0,7] histogram Contoh Histogram Equalization (1)
No. of pixels 6 5 4 3 2 1 Gray level Output: 4x4 image 0 1 2 3 4 5 6 7 Gray scale = [0,7] histogram Contoh Histogram Equalization (3)
Contoh Histogram Equalization (4) • >> g = histeq(f, 256); sebelum sesudah
Histogram EqualisasiLokal • Metodepemrosesan histogram yang sudahdibahas, yaitu “histogram equalization” bersifat global, karenapiksel-pikseldimodifikasimenggunakanfungsitransformasiberbasispadaintensitasseluruhpikselpadacitra. • Kadangdiperlukanperbaikanpadasuatudaerah yang kecildidalamcitra. • Teknik “histogram equalization” dapatditerapkanuntukperbaikanlokal. • Caranya: • Definisikandaerahketetanggaan (neighborhood) • Padasetiaplokasipiksel, histogram daripiksel-pikseldalam neighborhood dihitung. • Tentukanfungsitransformasi “histogram equalization” danfungsiinidigunakanuntukmemetakanintensitaspikselpadapusat neighborhood. • Ulangilangkah 2–3 untukseluruhpikseldalamcitra. 8 tetangga
Contoh Histogram EqualisasiLokal (1) Global Histogram Equalization Local Histogram Equalization Citra awal
Contoh Histogram EqualisasiLokal (2) f(1,1) 8 tetangga f(1,2) f(1,1) = (2/4)*7 = 3.5=4 f(1,2) = (4/6)*7 = 4.67=5 f(1,3) = (5/6)*7 = 5.83=6 f(1,4) = (1/4)*7 = 1.75=2 f(2,1) = (6/6)*7 = 7=7 f(2,2) = (3/9)*7 = 2.33=2 f(2,3) = (8/9)*7 = 6.22=6 f(2,4) = (4/6)*7 = 4.67=5 f(3,1) = (4/6)*7 = 4.67=5 f(3,2) = (4/9)*7 = 3.11=3 f(3,3) = (5/9)*7 = 3.89=4 f(3,4) = (6/6)*7 = 7 f(4,1) = (2/4)*7 = 3.5=4 f(4,2) = (6/6)*7 = 7 f(4,3) = (2/6)*7 = 2.22=2 f(4,4) = (3/4)*7 = 5.25=5
No. of pixels 6 5 4 3 2 1 Gray level Output: 4x4 image 0 1 2 3 4 5 6 7 Gray scale = [0,7] histogram Contoh Histogram Equalization Lokal (3)
Citra Biner • Citra yang hanyamempunyainilai level intensitaskeabuanhitamdanputih (0 dan 1). • Menjadidasardalampengolahancitra: morfologi, segmentasi, representasi, pengenalanpola, dsb. • Formula: • Piksel yang diberinilai 1 berkaitandenganobyeksedangkanpiksel yang diberinilai 0 berkaitandengan background. • Ketika T adalahkonstanta, pendekataninidisebutglobal thresholding.
Thresholding • Salahsatucaramemilihthresholdingadalahdenganpemeriksaan visual histogram citra. • Histogram dalamgambarsecarajelasmempunyaidua mode yang berbeda. • Mudahuntukmemilih threshold T yang membaginya. • Metode yang lain dalampemilihan T adalahdengantrial and error, mengambilbeberapa threshold berbedasampaisatunilai T yang memberikanhasil yang baiksebagaikeputusan yang ditemukan observer .
Thresholding (2) • Proseduruntukpemilihan threshold secaraotomatis: • Memilihperkiraanawal T. Disarankanperkiraanawaladalahtitiktengahantaranilaiintensitas minimum danmaksimumdalamcitra. • Mensegmentasicitramenggunakan T. Iniakanmenghasilkanduakelompokpiksel: G1, yang berisisemuapikseldengannilaiintensitas ≥ T, dan G2, yang berisisemuapikseldengannilaiintensitas < T. • Menghitung rata-rata nilaiintensitas1dan2untukpiksel-pikseldalam region G1dan G2. • Menghitungnilai threshold yang baru: • Mengulangilangkah 2 sampai 4 sampaiperbedaan T dalamiterasi yang berturut-turutlebihkecildaripada parameter Tosebelumnya.
Formulasi Otsu • Normalisasi histogram sebagaifungsi probability discrete density, sebagai: • dimana n adalah total jumlahpikseldalamcitra, nqadalahjumlahpiksel yang dipunyai level intensitasrq, dan L adalah total jumlah level intensitas yang tersediadalamcitra. • Andaikanbahwa threshold k dipilihmaka C0adalahsekumpulanpikseldengan level [0, 1, …, k – 1] dan C1adalahsekumpulanpikseldengan level [k, k + 1, …, L – 1]. • Metode Otsu memilihnilai k yang memaksimalkanbetween-class variance 2B, yang didefinisikansebagai: >> T = graythresh(f) >> T = 0.5*(double(min(i(:))) + double(max(i(:)))); >> done = false; >> while ~done g = i >= T; Tnext = 0.5*(mean(i(g)) + mean(i(~g))); done = abs(T - Tnext) < 0.5; T = Tnext; end
Citra abu-abukebiner • >> f = imread('anak.png'); • >> T = graythresh(f) • T = • 0.5529 • >> g = im2bw(f,T); • >> imwrite(g,'anak_biner.tif'); • >> f = imread('rice.tif'); • >> T = graythresh(f) • T = • 0.5255 • >> g = im2bw(f,T); • >> imwrite(g,'rice_biner.tif'); Citra abu-abu Citra biner
SpektrumWarna • Tahun 1966, Sir Isaac Newton menemukanbahwa ketika cahaya dilewatkan ke kacaprisma, kemunculan cahaya tidak putih melainkan terdiri dari spektrum kontinu dari warna dengan range dari violet pada satu sisi sampai merah pada sisi yang lain. • Benda yang memantulkan, dibatasi range spektrum visible yang ditunjukkan beberapa bentuk warna. • Misalnya, obyek green memantulkan cahaya dengan panjang gelombang utamanya dalam range 500 sampai 570 nm.
Kuantitasdasarwarna • Cahaya kromatis merentangkan spektrum elektromagnetik mulai dari kira-kira 400 sampai 700nm. • Tiga kuantitas dasar: radiance, luminance, dan brightness. • Radiance adalah jumlah perkiraan energi yang mengalir dari sumber cahaya, dan biasanya diukur dalam watts (W). • Luminance diukur dalam lumens (lm), memberikan ukuran perkiraan energi yang dilihat observer dari sumber cahaya. • Misalnya, cahaya diemisikan dari operasi sumber dalam jarak region infrared darispektrum yang dapat mempunyai energi yang signifikan (radiance), tetapi observer akan kesulitan melihatnya; luminasinya hampir menjadi nol. • Brightness adalah deskriptor subyektif yang secara praktek tidak mungkin diukur.
Warna Primer danSekunder • Warna primer dapat ditambahkan untuk menghasilkan warna sekunder (secondary color) dari cahaya, • magenta (red ditambah blue), • cyan (green ditambah blue), dan • yellow (red ditambah green). • Pencampuran tiga warna primer, atau sekunder dengan kebalikan warna primer dalam intensitas menghasilkan cahaya putih. • Warna primer pigmen adalah magenta, cyan dan yellow, dan warna sekunder adalah red, green, dan blue. Pencampuran warna cahaya Pencampuran warna pigmen
trichromatic coefficients • Persamaan tersebut dapat dinyatakan: • x + y + z = 1
Model Warna RGB • Terdiri dari tiga komponen:R,G,B. • Ketika ditampilkan di monitor RGB, tiga kombinasi citra ini beradadi layar fosfor untuk menghasilkan warna citra komposit. • Jumlah bit yang digunakan untuk merepresentasikan setiap piksel dalam space RGB disebut pixel depth. • Citra RGB di mana setiap citra red, green, dan blue adalah citra 8-bit. • Dalam kondisi setiap warna piksel RGB [maka, triplet dari nilai (R,G,B)] mempunyai kedalaman 24-bit (3 lapis citra dengan jumlah bit per lapis). • Citra full-color sering digunakan untuk menyatakan citra berwarna RGB 24-bit. Total jumlah warna dalam citra 24-bit adalah (28)3 = 16,777,216
Citra RGB >> i = imread('city_bridge.jpg'); >> fR = i(:,:,1); >> fG = i(:,:,2); >> fB = i(:,:,3); Citra RGB Komponen Red Komponen Green Komponen Blue >> rgb_image = cat(3, fR, fG, fB)
Model Warna CMY dan CMYK (Cyan, Magenta, Yellow, Black) • Perangkat yang menyimpan pigmen berwarna pada kertas, seperti printer dan mesin fotokopi berwarna, membutuhkan data input CMY (konversi RGB ke CMY secara internal). • Konversi (persamaandibawah): • Asumsi bahwa semua nilai warna dinormalisasi dalam range [0,1]. • Persamaan di atas menunjukan bahwa cahaya dipantulkan dari permukaan yang dilapisi dengan cyan murni tidak berisi red (karena C = 1 – R dalam persamaannya). • Pengolahan citra dengan model warna ini digunakan dalam hubungan dengan pembuatan output hardcopy. • Kombinasi tiga warna ini untuk pencetakan menghasilkan warna yang tidak sepenuhnya hitam • Untuk menghasilkan warna hitam yang benar (biasanya lebih dominan dalam pencetakan), warna keempat, black ditambahkan, memberikan kemunculan model warna CMYK >> iCMY = imcomplement(iRGB); Citra CMY Citra RGB
Model Warna HSI • Sistem RGB cocok dengan kenyataan bahwa mata manusia dengan kuat dapat mengetahui warna primer red, green, dan blue. • Sayangnya, RGB, CMY, dan model warna sejenis tidak secara baik cocok untuk menggambarkan warna dalam prakteknya untuk interpretasi manusia. • Misalnya, tidak mereferensikan ke warna dari automobile dengan pemberian persentase dari setiap warna primer yang mengisi warnanya. • Jangan dianggap bahwa citra berwarna terdiri dari tiga citra primer yang dikombinasikan untuk membentuk citra tunggal. • Model warna HSI (hue, saturation, intensity), memisahkan komponen intensitasdari informasi warna yang dibawa (hue dan saturasi) dalam warna citra. • Model HSI adalah tool yang ideal untuk mengembangkan algoritma pengolahan citra berdasarkan pada deskripsi warna yang alami dan intuitif terhadap manusia, pengembang dan usernya.
Model Warna HSI (2) • Hue adalah atribut warna yang menggambarkan warna murni (yellow, orange, atau red murni). • Saturation memberikan ukuran tingkat di mana warna murni yang dilemahkan oleh cahaya putih. • Intensity adalahtingkat/intensitaskedalamanwarna (diantarahitamdanputih). Warna primer dipisahkanolehsudut 120o. Warnasekunderadalah 60odari primer, yang berartibahwasudutdiantarawarnasekunderadalah 120o
Model Warna HSI (3) Citra HSI Citra RGB Citra Hue Citra Saturation Citra Intensity/Gray
Konversiwarna RGB ke HSI Hue Intensity / Gray Saturation
Konversiwarna HSI ke RGB Sektor GB (120o ≤ H < 240o) • Jikadiberikannilai HSI dalam interval [0,1] makadapatdicarinilai RGB dalam range yang sama. • Persamaan yang aplikatiftergantungpadanilai H. • Adatigasektor yang menarik, yang berhubungandengan interval 120odalampembagianwarna primer. • Dimulaidenganperkalian H dengan 360o, yang mengembalikan hue kenilaiaslinyadalam range [0o,360o] H = H – 120o Kemudiankomponen RGB dihitung: R = I(1 – S) B = 3I – (R + G) Sektor BR (240o ≤ H ≤ 360o) H = H – 240o Komponen RGB dihitungdengan: G = I(1 – S) Sektor RG (0o ≤ H < 120o) B = I(1 – S) R = 3I – (G + B) G = 3I – (R + B)
To Be Continued … Materi 4 – Pengolahan Citra dalam Domain SpasialdanRestorasi Citra ANY QUESTION ?