• Tidak ada hasil yang ditemukan

Pengenalan Model Warna RGB dan Grayscale dalam Pengolahan Citra Digital

N/A
N/A
AHMAD SAIFUDIN

Academic year: 2024

Membagikan "Pengenalan Model Warna RGB dan Grayscale dalam Pengolahan Citra Digital"

Copied!
14
0
0

Teks penuh

(1)

Nama: Ahmad Saifudin NIM: 220534600320

Prodi: S1 Pendidikan Teknik Elektro A

Lembar Praktikum Mandiri 2 Citra Digital

Dasar Toeri

Model warna RGB (lihat Gambar 1) merupakan model warna yang paling umum digunakan pada pengolahan citra digital. Citra RGB disusun dari tiga buah kanal warna primer yaitu Merah (Red), Hijau (Green) dan Biru (Blue). Setiap kanal penyusun warna RGB berisikan intensitas warnanya dalam skala 8 bit atau range nilai antara 0 hingga 255. Pada tiap piksel elemen sebuah citra, berisikan perpaduan ketiga warna tersebut. Semisal untuk warna putih, perpaduan ketiganya adalah pada nilai maksimal (255,255,255) sedangkan untuk warna hitam, perpaduan warna ketiganya berada pada nilai minimal (0,0,0). Dari ketiga perpaduan warna ini didapatkan 16 juta variasi warna.

Gambar 1 – Model Warna RGB dan Perpaduannya

Model warna keabuan (Grayscale) merupakan warna dengan skala 8 bit atau range nilai antara 0 hingga 255. Warna keabuan bisa dikatakan sebagai warna dengan satu kanal warna, yaitu kanal warna 8 bit. Untuk mendapatkan citra dengan skala keabuan ini, dapat dilakukan pengubahan dari citra RGB ke grayscale (lihat Gambar 2). Hal yang paling umum dilakukan adalah dengan membagi tiga komposisi warna RGB tersebut (Gonzalez and Wintz, 1977). Masing-masing warna memiliki bobot 0.33.

(2)

Gambar 2 – Pengubahan Citra RGB ke Grayscale

Binerisasi

Binerisasi citra merupakan proses pengubahan model warna citra awal ke model warna biner atau hanya ada dua warna saja, yaitu hitam dan putih atau 0 dan 1. Sebelum melakukan pengubahan model warna ke model warna biner, biasanya citra masukan yang dibutuhkan adalah citra dengan model warna keabuan atau grayscale. Untuk melakukan binerisasi citra 𝑓(𝑥, 𝑦), sering dilakukan metode pengambangan. Metode pengambangan (thresholding) yaitu pemilihan nilai batas ambang 𝑇ℎ(𝑥, 𝑦) untuk menentukan kapan sebuah piksel berubah menjadi hitam atau putih. Dari metode pengambangan ini akan menghasilkan citra baru 𝑔(𝑥, 𝑦) dengan pilihan warna hitam atau putih.

Nilai ambang yang digunakan, dapat secara manual yang dilakukan oleh pengguna atau beradaptasi dari nilai-nilai di dalam citra tersebut. Biasanya untuk nilai ambang secara manual, digunakan acuan pembacaan nilai histogram oleh pengguna dan secara manual ditentukan nilai ambangnya yang nantinya akan mengubah citra menjadi biner. Sedangkan untuk pengambilan nilai ambang yang dapat beradaptasi dari nilai citra, nilai ambangnya dapat beradaptasi secara otomatis terhadap variable apa yang menjadi acuannya. Semisal beracuan pada nila rata-rata, nilai penentuan ambangnya berdasarkan nilai rata-rata yang berubah sesuai dengan nilai piksel ketetanggannya. Dari sini lah nilai ambang yang beradaptasi dapat diperoleh. Persamaan 1 meunjukkan rumus binerisasi citra menggunakan skala warna 0 sampai 1.

………Persamaan 1

(3)

Gambar 3 - Binerisasi menggunakan metode thresholding dari citra awal (a) dengan nilai ambang: (b) <25, (c) <76, (d) <127, (e) <178, (f) <229.

Metode binerisasi dengan satu nilai tetap yang telah ditentukan sebelumnya sebagai nilai ambang seperti pada Gambar 3 dimana nilai warna yang melebihi nilai ambang akan menjadi putih dan apabila dibawah nilai ambang akan menjadi hitam.

Citra awal (lihat Gambar 3 (a)) yang semula memiliki variasi warna grayscale sesuai dengan angka yang tertera pada citranya yang akan dibinerisasi menggunakan metode thresholding dengan nilai ambang 𝑇ℎ(𝑥, 𝑦)nya sesuai dengan angka yang tertera pada citranya. Untuk hasil binerisasinya dapat dilihat pada Gambar 3 (b) sampai (f).

(4)

Langkah Kerja

1. Unduh data citra pada link berikut:

https://github.com/yogidm/Binarization/blob/master/Python/CitraRGB.p ng

2. Klik unduh file seperti gambar dibawah ini.

3. Simpan file dengan nama CitraRGB.png pada direktori workspace octave kalian masing-masing.

4. Kali ini kita akan membandingkan warna RGB dengan kanal penyusun citra RGBnya dan dibandingkan dengan warna keabuan (Grayscale) beserta pembobotan konversi tiap kanalnya.

5. Buat sebuah dokumen octave baru dan masukkan kode berikut:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

pkg load image

% Membaca gambar dari file

gambar = imread('CitraRGB.png');

% Menampilkan informasi tentang gambar pada Command Window disp('Ukuran Gambar:');

[tinggi, lebar, jumlah_channel] = size(gambar);

fprintf('Tinggi: %d piksel\n', tinggi);

fprintf('Lebar: %d piksel\n', lebar);

fprintf('Jumlah Channel: %d\n', jumlah_channel);

% Menampilkan gambar figure;

imshow(gambar);

title('Gambar Asli');

% Menyimpan informasi ke dalam variabel gambar_gray

gambar_gray = rgb2gray(gambar); % Mengonversi gambar ke skala abu-abu

% Menampilkan gambar dalam skala abu-abu figure;

imshow(gambar_gray);

title('Gambar dalam Skala Abu-abu');

(5)

6. Run program dan amati. Lampirkan hasilnya dan beri penjelasan!

Penjelasan hasil dari program di atas adalah warna yang di tampilkan setelah kita menrun program yaitu warna yang ada pada figure 2, yaitu warna yang

ditampilkan dalam bentuk skala abu-abu sesuai dengan yang di minta oleh

program, sedangkan warna pada figure 1 adalah warna asli atau gambar png yang kita download sebelumnya namun kita panggil lagi untuk di tampilkan kembali.

7. Buat sebuah dokumen baru lagi dan masukkan kode berikut

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

% Membaca gambar dari file

gambar_rgb = imread('CitraRGB.png');

% Memastikan bahwa gambar adalah gambar warna (RGB) if ndims(gambar_rgb) < 3

error('Gambar yang dibaca bukan gambar berwarna (RGB).');

end

% Mendefinisikan bobot untuk setiap kanal (R, G, B) wR = 0.33; % Bobot untuk kanal Merah

wG = 0.33; % Bobot untuk kanal Hijau wB = 0.33; % Bobot untuk kanal Biru

% Konversi RGB ke Grayscale dengan bobot

gambar_gray_weighted = wR * double(gambar_rgb(:, :, 1)) + ...

wG * double(gambar_rgb(:, :, 2)) + ...

wB * double(gambar_rgb(:, :, 3));

% Menampilkan gambar asli dan gambar grayscale hasil konversi figure;

subplot(1, 2, 1);

imshow(gambar_rgb);

title('Gambar Asli (RGB)');

% Normalisasi nilai grayscale ke rentang [0, 255]

gambar_gray_weighted = uint8(gambar_gray_weighted);

subplot(1, 2, 2);

imshow(gambar_gray_weighted);

title('Grayscale dengan Bobot (0.33, 0.33, 0.33)');

% Opsional: Menyimpan gambar grayscale ke file

imwrite(gambar_gray_weighted, 'grayscale_weighted.jpg');

(6)

8. Run program dan amati. Lampirkan hasilnya dan beri penjelasan!

Untuk gambar asli yaitu gambar yang berwarna, sedangkan gambar yang telah di ubah dengan program yaitu gambar dengan dengan tampilan skala abu abu dengan bobot R=0.33, G=0.33, B=0.33

9. Ubah bobot wR, wG, dan wB (line 10 sampai 12) sesuai dengan selera dengan total bobot = 1. Amati apa perbedaannya. Lampirkan hasilnya!

Untuk gambar yang asli yaitu gambar yang berwarna, sedangkan gambar yang telah di ubah dengan program dengan warna R=0.15, G=0.21, B=0.8, untuk warna merah dan hijaunya dalam skala abu abu ini lebih gelap warnanya sedangkan untuk warna birunya lebih mendekati ke abu abu

10. Ubah kembali wR, wG, dan wB dengan nilai (0.20, 0.35. 0.45). Apa hasilnya?

Apakah perbedaan yang muncul? Lampirkan hasilnya.

(7)

Untuk gambar yang asli yaitu gambar yang berwarna, sedangkan gambar yang telah di ubah dengan program dengan warna R=0.20, G=0.35, B=0.45, untuk warna merah dalam skala abu abu ini lebih gelap warnanya sedangkan untuk warna biru dan hijaunya sedikit lebih cerah dari warna merahnya

11. Bandingkan dengan kode pada langkah kerja ke-4. Apa perbedaan yang muncul dari hasil yang ditampilkan? Jelaskan!

Perbedaan kode dengan hasil yang di tampilkan yaitu warna yang di

tambilkan dari R=0.20, G=0.35, B=0.45 yaitu warna merah dalam skala abu abu ini lebih gelap warnanya sedangkan untuk warna biru dan hijaunya sedikit lebih cerah dari warna merahnya, ini dikarenakan warna RGB ini dipengaruhi oleh skala besaran angka yang di masukkan dalam program.

(8)

12. Unduh data pada alamat berikut:

https://github.com/yogidm/Binarization/blob/master/Ancient-Document- Binarization/data15.bmp

13. Terdapat data dokumen Naskah Babok Kalamadi halaman 154 dan simpan dengan nama data15.bmp dan masukkan pada direktori workspace octave kalian.

14. Buat sebuah dokumen baru dan tuliskan kode berikut:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

% Membaca gambar dari file gambar = imread('data15.bmp');

% Memisahkan kanal RGB

red_channel = gambar(:, :, 1); % Kanal Merah green_channel = gambar(:, :, 2); % KanalHijau

blue_channel = gambar(:, :, 3); % Kanal Biru

% Menampilkan setiap kanal secara terpisah figure;

subplot(2, 2, 1);

imshow(gambar);

title('Gambar Asli');

subplot(2, 2, 2);

imshow(red_channel)

; title('Kanal Merah');

subplot(2, 2, 3);

imshow(green_channel);

title('Kanal Hijau');

subplot(2, 2, 4);

imshow(blue_channel)

; title('Kanal Biru');

(9)

15. Run program, amati, dan lampirkan hasilnya. Ceritakan apa saja yang terjadi pada program tersebut!

Pada gambar di atas di atur dengan program yaitu dengan penggunaan vektor untuk pengeplotannya. Untuk hasil dari kanal yang lebih bias dibaca menurut saya yaitu yang kanal hijau karena lebih terang dari yang lainnya, sedangkan kanal biru lebih rumit untuk dibaca dikarenakan warnanya lebih suram dari yang lainnya

16. Apa perbedaan antara ketiga kanal tersebut? Perbedaanya yaitu terletak pada warnanya yang kanal hijau lebih terang, untuk kanal merah hampir mendekati aslinya sedangkan kanal biru lebih suram warnanya

17. Apa perbedaan antara tiap kanal warna dengan citra keabuan pada langkah kerja ke-4 dan ke-6? Perbedaannya pada letak pengeplotannya dan warna dari masing masing kanalnya

18. Coba komparasi langkah ke-4, ke-6 dan ke-13 dengan data yang sama gunakan

data15.bmp dan CitraRGB.png .

19. Buat analisa beserta lampirkan hasilnya!

(10)

Pada program kali ini kita memisahkan kanal RGB yaitu warna merah biru dan hijuanya di pisahkan sendiri dengan pemlotan menggunakan vektor, dengan rgbnya yang di ubah dalam skala abu abu.

20. Kali ini kita akan mempelajari binerisasi atau mengubah citra keabuan menjadi citra biner dengan teknik pengambangan atau thresholding.

21. Unduh data terakhir pada alamat berikut ini:

https://github.com/yogidm/Binarization/blob/master/Python/CitraGray Angka.png

22. Simpan pada direktori yang sama dengan workspace octave kalian dengan nama CitraGrayAngka.png.

(11)

23. Buat dokumen baru dan tuliskan kode berikut ini.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

% Membaca gambar dari file

gambar_rgb = imread('CitraGrayAngka.png');

% Mendefinisikan bobot untuk setiap kanal (R, G, B) wR = 0.33; % Bobot untuk kanal Merah

wG = 0.33; % Bobot untuk kanal Hijau wB = 0.33; % Bobot untuk kanal Biru

% Konversi RGB ke Grayscale dengan bobot

gambar_gray_weighted = wR * double(gambar_rgb(:, :, 1)) + ...

wG * double(gambar_rgb(:, :, 2)) + ...

wB * double(gambar_rgb(:, :, 3));

gambar_gray_weighted = uint8(gambar_gray_weighted);

% Ambang yang ditentukan threshold = 25;

% Binerisasi gambar berdasarkan ambang

gambar_biner = gambar_gray_weighted >= threshold;

% Menampilkan gambar asli dan gambar hasil binerisasi figure;

subplot(1, 2, 1);

imshow(gambar_rgb);

title('Gambar Asli (RGB)');

subplot(1, 2, 2);

imshow(gambar_biner);

title('Citra Biner (Thresholding)');

% Opsional: Menyimpan gambar biner ke file imwrite(gambar_biner, 'gambar_biner.jpg');

24. Run program, amati, dan lampirkan hasilnya. Ceritakan apa saja yang terjadi pada program tersebut!

Hasil dari run program citra binernya ini untuk angka 229,127,76, dan 178 ini lebih terang dan kelihatan namun pada angka 25 ini mulai blur, dan angka 127 yang kanan, 229. 178 kanan, dan 76 ini angkanya menghilang di citra biner ketika sudah di tresholding

25. Ubah nilai threshold pada line 17 dengan angka antara 0-255. Amati apa yang terjadi. Ceritakan dan lampirkan hasilnya.

(12)

Ketika tresholding saya rubah ke nilai 235, hasil dari tresholding angka yang kelihatan yaitu angka 229, sedangkan yang di blok putih angkanya menjadi hitam pekat dan angka yang hilang yaitu angka 229

26. Ubah nilai threshold dengan angka 25, 76, 127, 178, 229, dan 254. Apa yang terjadi. Lampirkan hasilnya.

1. Tresshold =25

2. Treshold 76

3. Treshold 127

4. Treshold 178

(13)

5. Treshold 229

6. Treshold 254

27. Ubah data gambar pada line 2 dengan data15.bmp .

28. Amati apa yang terjadi, ceritakan dan lampirkan hasilnya.

1. Tresholding 75

2. Tresholding 25

3. Tresholding 254

(14)

Dari data di atas untuk mendapatkan tres holding yang baik agar tulisan dapat dibaca yaitu dengan angka tresholding diatas 75, sesuaikan sampai gambar tersebut sampai benar benar bisa dibaca, namun jangan sampai nilai tresholding ini diatas 200

29. Dari semua kode program diatas, coba tambahkan data lainnya dari tangkapan kamera laptop kalian. Objek sembarang yang memiliki perbedaan warna yang mencolok. Coba amati apa yang terjadi dan buat kesimpulan dari kegiatan ini.

Kesimpulan kali ini kita belajar perbedaan warna RGB dengan menggunakan skala abu abu dan serta plot menggunakan vektor dan juga kita belajar tresholding, dengan kesimpulan jika kita memasukkan nilai terlalu besar diatas 200 maka hasil dari tresholding akan gelap untuk hasil yang baik dan bisa dibaca bisa disesuaikan dengan angka lebih dari 75 sampai gambar dapat dibaca.

30. Unggah hasil lembar kerja mandiri pada akun sipejar kalian dengan format PDF.

Referensi

Dokumen terkait

Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet,

Mode warna ini digunakan untuk mempermudah dalam melakukan proses pengolahan selanjutnya, karena dengan mengubah mode warna RGB menjadi mode warna grayscale maka ketiga layer

Kerjakan soal berikut ini. Jelaskan dan beri contoh, apa yang dimaksud dengan : resolusi citra. Diketahui citra RGB berikut:3. a) Ubah model warna RGB mejadi NTSC menggunakan

Mata kuliah ini menjelaskan karakteristik citra digital, analisis dan pengolahan citra digital seperti image formation, image restoration, image enhancement, transformasi citra

• Pada pengolahan citra digital, filter digunakan untuk (1) menekan frekuensi tinggi pada citra seperti pada memperhalus citra (smoothing), atau (2) menekan frekuensi rendah

Pengukuran linieritas tingkat keabuan (gray level) citra fluoroskopi menggunakan metode pengolahan citra digital berdasarkan variasi tegangan diperoleh persamaan linieritas yang

Tahapan-tahapan pada penelitian ini adalah pengolahan awal citra ( preprocessing ) yaitu konversi citra berwarna (RGB) ke citra skala keabuan ( grayscale ), pengubahan kontras,

• Pada aplikasi pemampatan citra, pemampatan citra berwarna lebih relevan bila warna RGB-nya dikonversikan ke HSI karena algoritma pemampatan pada citra skala-abu dilakukan