Pengolahan Citra
Pengertian pengolahan citra digital??
Citra digital merupakan representasi dari fungsi intensitas cahaya dalam bentuk diskrit pada bidang dua dimensi. Citra tersusun oleh sekumpulan piksel (picture element) yang memiliki koordinat (x,y) dan amplitudo f(x,y).
Koordinat (x,y) menunjukkan letak/posisi piksel dalam suatu citra, sedangkan amplitudo f(x,y) menunjukkan nilai intensitas warna citra.
Representasi citra digital beserta piksel penyusunnya ditunjukkan pada Gambar 1.
Gambar 1. Citra dan piksel penyusunnya
Pada umumnya, berdasarkan kombinasi warna pada piksel, citra dibagi menjadi tiga jenis yaitu citra RGB, citra grayscale, dan citra biner.
Citra pada Gambar 1 termasuk dalam jenis citra RGB truecolor 24-bit.
Citra tersebut tersusun oleh tiga kanal warna yaitu kanal merah, kanal hijau, dan kanal biru.
Masing-masing kanal warna memiliki nilai intensitas piksel dengan kedalaman bit sebesar 8-bit yang artinya memiliki variasi warna sebanyak 2^8 derajat warna (0 s.d 255).
Pada kanal merah, warna merah sempurna direpresentasikan dengan nilai 255 dan hitam sempurna dengan nilai 0. Pada kanal hijau, warna hijau sempurna direpresentasikan dengan nilai 255 dan hitam sempurna dengan nilai 0. Begitu juga pada kanal biru, warna biru sempurna direpresentasikan dengan nilai 255 dan hitam sempurna dengan nilai 0.
Perintah yang digunakan untuk merepresentasikan citra RGB beserta masing-masing kanal warna nya yaitu:
clc;clear;close all; I = imread('peppers.png'); R = I(:,:,1); G = I(:,:,2); B = I(:,:,3); Red = cat(3,R,G*0,B*0); Green = cat(3,R*0,G,B*0); Blue = cat(3,R*0,G*0,B); figure, imshow(I); figure, imshow(Red); figure, imshow(Green); figure, imshow(Blue);
Citra RGB yang diperoleh ditunjukkan pada Gambar 2.
Sedangkan representasi kanal warna R, G, dan B berturut-turut ditunjukkan pada Gambar 3, 4, dan 5.
Setiap piksel pada citra RGB, memiliki intensitas warna yang merupakan kombinasi dari tiga nilai intensitas pada kanal R, G, dan B.
Sebagai contoh, suatu piksel yang memiliki nilai intensitas warna sebesar 255 pada kanal merah, 255 pada kanal hijau, dan 0 pada kanal biru akan menghasilkan warna kuning.
Pada contoh lain, suatu piksel yang memiliki nilai intensitas warna sebesar 255 pada kanal merah, 102 pada kanal hijau, dan 0 pada kanal biru akan menghasilkan warna orange.
Banyaknya kombinasi warna piksel yang mungkin pada citra RGB truecolor 24-bit adalah sebanyak 256 x 256 x 256 = 16.777.216.
Representasi piksel dengan kombinasi warna R, G, dan B ditunjukkan pada Gambar 6.
Gambar 6. Representasi piksel dengan kombinasi warna R, G, dan B
Jenis citra yang kedua adalah citra grayscale. Citra grayscale merupakan citra yang nilai intensitas pikselnya didasarkan pada derajat keabuan.
Pada citra grayscale 8-bit, derajat warna hitam sampai dengan putih dibagi ke dalam 256 derajat keabuan di mana warna putih sempurna direpresentasikan dengan nilai 255 dan hitam sempurna dengan nilai 0.
Citra RGB dapat dikonversi menjadi citra grayscale.
Persamaan yang umumnya digunakan untuk mengkonversi citra RGB truecolor 24-bit menjadi citra grayscale 8-bit adalah
0.2989*R+0.5870*G+0.1140*B (1)
sehingga proses konversi menghasilkan citra grayscale yang hanya memiliki satu kanal warna.
Perintah yang digunakan dalam proses konversi citra RGB menjadi citra grayscale yaitu:
J = rgb2gray(I); figure, imshow(J);
Citra hasil konversi ditunjukkan pada Gambar 7.
Gambar 7. Citra hasil konversi RGB menjadi grayscale
Jenis citra yang ketiga adalah citra biner.
Citra biner adalah citra yang pikselnya memiliki kedalaman bit sebesar 1 bit sehingga hanya memiliki dua nilai intensitas warna yaitu 0 (hitam) dan 1 (putih).
Citra grayscale dapat dikonversi menjadi citra biner melalui proses thresholding.
Dalam proses thresholding, dibutuhkan suatu nilai threshold sebagai nilai pembatas konversi.
Nilai intensitas piksel yang lebih besar atau sama dengan nilai threshold akan dikonversi menjadi 1.
Sedangkan nilai intensitas piksel yang kurang dari nilai threshold akan dikonversi menjadi 0.
Misalnya nilai threshold yang digunakan adalah 128, maka piksel yang mempunyai intensitas kurang dari 128 akan diubah menjadi 0 (hitam) dan yang lebih dari atau sama dengan 128 akan diubah menjadi 1 (putih).
Dalam MATLAB nilai threshold diatur dalam kelas data double, sehingga untuk mengatur nilai threshold 128, nilai yang digunakan adalah 128/256 = 0.5.
Perintah yang digunakan dalam proses konversi citra grayscale menjadi citra biner yaitu:
K = im2bw(J,0.5); figure, imshow(K);
Citra hasil konversi ditunjukkan pada Gambar 8.
Gambar 8. Citra hasil konversi grayscale menjadi biner
Thresholding pada umumnya digunakan dalam proses segmentasi citra.
Proses tersebut dilakukan untuk memisahkan antara foreground (objek yang dikehendaki) dengan background (objek lain yang tidak dikehendaki).
Pada hasil segmentasi, foreground direpresentasikan oleh warna putih (1) dan background direpresentasikan oleh warna hitam (0).
Pada kasus segmentasi pada satu citra saja, kita dapat menentukan nilai threshold dengan metode trial and error.
Namun pada kasus segmentasi pada citra dengan jumlah yang banyak, dibutuhkan suatu metode untuk menentukan nilai threshold secara otomatis.
Nilai threshold dapat diperoleh secara otomatis dengan menggunakan metode Otsu (1979).
Perintah yang digunakan untuk thresholding menggunakan metode Otsu yaitu:
L = graythresh(J); M = im2bw(J,L); figure, imshow(M);
Citra yang dihasilkan ditunjukkan pada Gambar 9.
Gambar 9. Hasil thresholding menggunakan metode Otsu
Sedangkan pengertian pengolahan citra digital adalah bidang ilmu yang mempelajari tentang bagaimana suatu citra itu dibentuk, diolah, dan dianalisis sehingga menghasilkan informasi yang dapat dipahami oleh manusia.
Project pengolahan citra digital dapat dilakukan dengan mengimplementasikan dan mengembangkan metode pengolahan citra yang sudah ada maupun metode pengolahan citra terbaru sehingga diperoleh suatu sistem pengolahan citra yang baik.
Penjelasan detail mengenai representasi citra digital bisa dilihat pada video berikut ini:

penjelasannya sangat lengkap sekali dan mudah dipahami. ternyata matlab merupakan aplikasi lengkap yang dapat digunakan untuk pengolahan citra
terima kasih icecreamdeliciousRaizal
karena pada hakekatnya citra itu merupakan matriks dan matlab merupakan matrix laboratory maka dari itu matlab sangat support dengan bidang pengolahan citra digital
mas untuk merubah citra asli yang berwarna hitam putih ke biner apa perlu melalui process grayscale ?
Tidak perlu rahmani, bisa langsung dikonversi menjadi biner
Mas, mau tanya tentang bimodal histogram splitting buat deteksi bayangan gitu gimana ya mas? Saya Ada referensi papernya tapi masih bingung. Mohon bantuannya ya mas, makasih sebelumnya
semoga saya bisa membantu mus
pertanyaan yang sama, apa sdh ada solusinya? bagi dong 😉
mas untuk deteksi plat nomer itu source code nya itu kyak gimna ya.
terima kasih.
untuk deteksi plat nomor kendaraan bisa menggunakan deteksi tepi dalam proses segmentasi, invariant moment dalam proses ekstraksi ciri, dan jaringan syaraf tiruan dalam proses identifikasi
mas untuk citra kerusakan jalan raya, saya mau ngitung luas kerusakannya, sebeum di lakukan proses deteksi tepi langkah2 apa aja yg harus dilakukan? untuk preprocessingnya.
terima kasih.
Terima kasih atas ilmunya Pak.. Semoga selalu dalam lindungan Yang Kuasa.. aaamiiinn..
Amin
Terima kasih
Zulfiqar Busrah
Sukses selalu
halo, selamat malam mas adi.
mohon bantuannya untuk source code dibawah ini apakah ada yang salah yah?
??? Error using ==> plus
Integers can only be combined with integers of the same class, or scalar doubles.
Error in ==> Edge_detection>btn_fuzzy_Callback at 396
d1 = 2 – (1-A+t1).*exp(A-t1)-(1-t1+A).*exp(t1-A)+ 2- (1-(A-t1)+pit1-piA).*exp(A-t1-(pit1-piA))-(1-(pit1-piA)+A-t1).*exp(pit1-piA-(A-t1));
terimakasih.
Selamat malam oscar
Source code tsb hanya dapat dijalankan dengan mengoperasikan data pada kelas yang sama
mas, mau tanya tentang bimodal histogram splitting.. sebenarnya saya sudah wa masnya tapi gak ada respon. oiya, ini paper yang saya gunain mas http://www.sciencedirect.com/science/article/pii/S2212017316302377 (halaman 1361) yang step 3 nya (until T doesn’t change) itu gimana ngodingnya ya mas? mohon bantuannya ya mas.. makasih sebelumnya..
semoga saya bisa membantu mengenai bimodal histogram splitting
Assalamualaikum mas, saya mau nanya cara menampilkan nilai Citra hasil konversi grayscale menjadi biner gimana ya mas
Waalaikumsalam arif budiman
materi untuk menampilkan citra hasil konversi grayscale menjadi biner dapat dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/2017/07/25/thresholding_citra/
Bagaimana cara konversi HSL ke Grayscale soalnya saya butuh untuk dasar teori Tugas Akhir saya mohon bimbingannya hehe
Citra hsl bisa dikonversi menjadi rgb terlebih dahulu kemudian dikonversi menjadi grayscale
saya mau bertanya apakah dari citra rgb bisa langsung di proses tanpa harus dirubah menjadi gs atau bw? terimakasih
bisa saepul
menentukan range warna pada gambar gimana yah? rumus fuzzy logic for image processing seperti apa mohon di bantu terimakasih
untuk range warna pada gambar bisa dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/pengenalan-pola-citra-digital-menggunakan-matlab/pola-warna/
Assalamualaikum, mas mau Tanya? Kalau untuk menghilangkan kotak di gambar hasil rekaman EKG perlu pakai proses apa aja ya mas.
Mohon di Bantu terima kasih.
Waalaikumsalam rahmadani
bisa dicoba diimplementasikan menggunakan metode thresholding
assalamualaikum, mau tanya punya rumus metode fuzzy image processing tidak? mulai dari fuzzifikasi, modifikasi nilai keanggotaan dan defuzifikasi? saya bingung masalahnya terimakasih mohon dibantu
Waalaikumsalam
Semoga ke depan saya punya rumus metode fuzzy image processing mulai dari fuzzifikasi, modifikasi nilai keanggotaan dan defuzifikasi
mas apakah ada koding untuk liniear discriminant analysis?
saya masih binggung
Ditunggu ya dian
Semoga ke depan terdapat materi & koding mengenai linear discriminant analysis
Mas kalo misal nya satu piksel nilai nya 125 buat tau nilai rgb nya gimana ya mas?
Dalam piksel citra rgb pasti terdapat 3 nilai intensitas r,g,b bukan hanya 1 nilai
Citra yg piksel nya memiliki 1 nilai intensitas saja adalah citra grayscale atau biner
mas saya kan buat kematangan buah dengan metode backpropagation dan metode euclidien distance, nah untuk pas di bagian identifikasi atau pas uji kok error terus yaa padah sudah bener ,
Error using uji2>btn_proses_Callback (line 254)
‘model’ parameter must be a character vector
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in uji2 (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in
matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)uji2(‘btn_proses_Callback’,hObject,eventdata,guidata(hObject))
Error while evaluating UIControl Callback.
Mas, bagaimana cara mencari jumpah piksel/cm dalam grayscale?
Nilai resolusi spasial dapat diperoleh dari hasil akuisisi citra menggunakan pesawat radiodiagnostik dengan format dicom
mas mau tanya untuk yg dari RGB mau dikonversi ke grayscale itu cara peletakan source codenya diletakkan dimana, apakah digabung dengan source code nya RGB ?
Betul mas untuk source code konversi citra rgb menjadi grayscale digabung dengan source code rgb
Bagaimana cara auto cropping? Mohon pencerahannya
Cara untuk melakukan cropping citra secara otomatis bisa dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/2016/07/07/cara-melakukan-cropping-citra-secara-otomatis/
mas mau tanya cara menampilkan nama dan ukuran dari suatu file citra di handles text gui source kode nya gimana yah? mohon bantuannya.
Mau tanya dong kak. Kalau mau cari jumlah gambar dari warnanya gimana ya codingnya? Terimakasih 🙂
materi mengenai segmentasi warna bisa dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/pengolahan-citra-digital/segmentasi-citra/segmentasi-warna/
permisi mas mau tanya cara melihat luas area di setiap pixel yang sudah di threshold gmana ya?
terimkasih
Cara untuk menghitung luas area di setiap objek bisa dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/pengenalan-pola-citra-digital-menggunakan-matlab/pola-bentuk-morfologi/
Mau tanya kak untuk mengukur panjang dan lebar sebuah benda dalam pcd menggunakan apa ya kak ?
Untuk mengukur panjang dan lebar sebuah benda bisa menggunakan mayor axis length dan minor axis length seperti yang ada pada materi di halaman berikut ini
https://pemrogramanmatlab.com/2017/02/10/pengolahan-citra-untuk-ekstraksi-ciri-objek/
mau nanya dong mas pemula nech…
setelah mengenal PCD di kampus,,, saya begitu semangat membaca artikel – artikel tentang PCD sampai membeli buku, googling maupun youtube. tapi saya bingung mas,,, ada persamaan-persamaan yang sering di sebutkan tapi tidak di uraikan secara jelas termasuk dalam artikel ini. ada ga bahasan khusus terkait ini agar saya lebih mudah memahami? terima kasih mas semoga panjang umur dan tambah rezekinya…
Bang mau tanya dan minta tolong bgt bang. Matrik rgb citra itu yg bagaimana ya bang pa sama saja kyak yg ada diatas itu ya ? 🙏
Mas kalo komponen 4 bit berarti mempunyai derajat keabuan dengan nilai brapa sampao berapa
Selamat malam
Maaf mengganggu waktunya pak
Mau nanya pak
Untuk mencari nilai median pada suatu citra gmna ya ?
Tanpa menggunakan fungsi matlab
Malam
Bisa mengurutkan terlebih dahulu nilai pikselnya kemudian dicari nilai tengahnya
Siang kak,,,
Permisib saya mau bertanya, apa perbedaan ekstraksi citra menggunakan wavelet dengan fitur histogtam?
Thx
Ekstraksi ciri wavelet dilakukan pada domain frekuensi sedangkan ekstraksi ciri histogram dilakukan pada domain spasial
Siang kak, maaf mau tanya untuk codingan histogram warna kayak gimana ya kak? Makasih sebelumnya
Koding histogram warna ada di dalam buku modul tutorial pemrograman matlab
Bisa dibeli di tokopedia
Terimakasih, materinya mudah dipahami 🙏
Sore kak, maaf nau tanya untuk konversi pesan (txt) ke biner gimana ya? Terimakasih
Sama saja prinsipnya
Hanya formatnya saja yg berbeda
Mas mau tanya, untuk membaca file mdb formatnya pgm pake octave online/matlab itu gimana ya caranya?
Bisa menggunakan perintah imread
Selamat pagi mas..saya mau tanya untuk menghitung range kematangan buah itu bagaimana ya?
Pagi
Bisa dilihat dari nilai hue nya
apakah bisa convert pdf to image ya mas ? atau mungkin bisa ta read image dalam pdf file ?
Halo Mas.. mau tanya kalo kita ektraksi ciri teksture dengan GLCM, lebih baik citra nya di convers RGB to gray saja bisa ? Atau harus melalui tahap convers lainnya? Citra nya citra benih padi mas.
Mohon masukan nya mas..
Iya betul citra RGB harus dikonversi menjadi citra grayscale terlebih dahulu
Mas, saya mau tanya. Apakah citra warna bisa langsung diubah ke citra biner atau sebelum ke citra biner diubah dulu ke grayscale?.
Terima Kasih.
Dari komponen rgb bisa langsung diubah ke biner tanpa melalui grayscale
mas,saya mau tanya. kalau mau menambahkan intensitas citra,apakah harus diubah ke grayscale terlebih dahulu?
Tidak harus, bisa dari citra RGB
mas mau codingan citra yang isinya hanya koin berwarna putih dan berukuran kecil (background berwarna hitam) dan hitung jumlah semua koin di gambar.
Mas adi, kalau mau mendeteksi kemunculan cahaya matahari di ufuk timur dengan data nya hasil foto dari kamera atau handphone, sarannya menggunakan metode apa saja ya ?
selamat malam mas, maaf saya mau tanya klo errornya begini salahnya dibagian mana ya ?
??? Error using ==> *
Function ‘*’ not defined for variables of class ‘uint8’.
Error in ==> C:\work\UTS Pengolahan Citra\KonversiCitra.m
On line 14 ==> red = cat (3,R,G*0,B*0);
trimah kasih
Source code lengkap bisa dibeli di tokopedia
Mas kalo untuk klasifikasi jenis jenis ikan metode apa yang cocok untuk digunakan ?
Bisa menggunakan metode jaringan syaraf tiruan atau yang lain
Bagaimana memasukkan code kanal merah pada gambar
Apablia dilakukan modifikasi terhadap sebuah citra digital, dengan cara menambahkan setiap nilai matriknya dengan besaran yang sama, maka yang terjadi pada citra digital tersebut adalah?
Siang mas, saya mau nanya kalo mau membuat histogram gambar grayscale secara manual tanpa fungsi imhist itu gimana ya?
Terima kasih.
halo mas saya mau tanya, kira-kira ada gak contoh kasus negative dengan adanya pengolahan citra itu sendiri, terimakasih.
Pak bagaimana rumusnya jika di ganti dengan warna cmyk