Wednesday, December 21, 2022

                                                     PENGOLAHAN CITRA

PENGERTIAN        

             Pengolahan citra digital sendiri bisa diartikan sebagai manipulasi yang dilakukan terhadap gambar-gambar digital melalui sebuah proses komputasi. Nah dalam pengolahannya tidak terfokus pada sub-bidang sinyal dan sistem yang ada tetapi lebih fokus terutama pada gambarnya.

            Sistem ini dalam pengembangannya lebih berfokus pada pengembangan sistem agar suatu citra bisa diproses dengan output lebih baik. Salah satu aplikasi yang digunakan untuk pengembangan ini adalah MATLAB sendiri dengan perintah unik tentunya. Input yang dimasukkan akan diolah dengan algoritma tertentu hingga menghasilkan sebuah citra sebagai hasil akhirnya.

            Saat ini, seiring dengan berkembangnya dunia fotografi maka pengolahan citra digital sebenarnya berada jauh lebih dekat. Ada banyak sekali penggunaan dari pengolahan citra digital yang biasa dilakukan tetapi mungkin tidak disadari. Salah satu contoh dari pengolahan citra digital yakni image sharpening and restoration.

            Dalam bahasa Indonesia, fungsi tersebut sering disebut dengan mempertajam gambar dan merestorasinya agar tampak lebih baik. Beberapa editing atau pengolahan yang termasuk dalam fungsi ini misalnya adalah memperbesar, memblur, mempertajam, perubahan warna, dan juga rekognisi gambar.

            Contoh paling mutakhir dalam pengaplikasiannya adalah UV Imaging atau pemindaian sebuah benda. Pemindaian bumi menggunakan sebuah satelit dari jarak jauh kemudian memprosesnya hingga didapat sebuah informasi juga merupakan pengolahan citra digital ini. Sebuah informasi bisa didapat dan dibagikan dengan lebih mudah karena adanya proses ini.

            Pengolahan citra digital dan aplikasinya menggunakan MATLAB mungkin memang akan sedikit rumit karena bahasa pemrogramannya. Tapi saat ini sudah ada Patra Statistika yang bisa membantu dalam keadaan apa pun sehingga tidak ada lagi kata sulit. 

            Adapun untuk jenis-jenis dari pemograman citra sebagai berikut:

            PERBAIKAN CITRA

            Perbaikan kualitas citra (image enhancement) merupakan salah satu proses awal dalam pengolahan citra (image preprocessing). Perbaikan kualitas diperlukan karena seringkali citra yang dijadikan objek pembahasan mempunyai kua litas yang buruk, misalnya citra mengalami derau (noise) pada saat pengiriman melalui saluran transmisi, citra terlalu terang/gelap, citra kurang tajam, kabur, dan sebagainya. Melalui operasi pemrosesan awal inilah kualitas citra diperbaiki sehingga citra dapat digunakan untuk aplikasi lebih lanjut, misalnya untuk aplikasi pengenalan (recognition) objek di dalam citra
Adapun mathlabnya sebagai berikut :

I=imread('FotoAhmaddd.jpeg');
J=imadjust(I,[40/255 204/255],[0/255 255/255]);
figure,imshow(I);
figure,imhist(I);
figure,imshow(J);
figure,imhist(J);

Adapun hasil mathlabnya sebagai berikut :




TRESHOLDING
    Thresholding merupakan salah satu metode segmentasi citra yang memisahkan antara objek dengan background dalam suatu citra berdasarkan pada perbedaan tingkat kecerahannya atau gelap terang nya. Region citra yang cenderung gelap akan dibuat semakin gelap (hitam sempurna dengan nilai intensitas sebesar 0), sedangkan region citra yang cenderung terang akan dibuat semakin terang (putih sempurna dengan nilai intensitas sebesar 1). Oleh karena itu, keluaran dari proses segmentasi dengan metode thresholding adalah berupa citra biner dengan nilai intensitas piksel sebesar 0 atau 1. Setelah citra sudah tersegmentasi atau sudah berhasil dipisahkan objeknya dengan background, maka citra biner yang diperoleh dapat dijadikan sebagai masking utuk melakukan proses cropping sehingga diperoleh tampilan citra asli tanpa background atau dengan background yang dapat diubah-ubah.
Adapun mathlabnya sebagai berikut :
clc; clear; close all;
 
% Object
Img = imread('FotoAhmaddd.jpeg');
figure, imshow(Img);

Gray = rgb2gray(Img);
figure, imshow(Img);

bw = im2bw(Gray,.99);
figure, imshow(bw);

bw = imcomplement(bw);
figure, imshow(bw);

bw = imfill(bw,'holes');
bw = bwareaopen(bw,100);
str = strel('disk',5);
bw = imerode(bw,str);
figure, imshow(bw);

% Background
Img2 = imread('123.png');
figure, imshow(Img2);

R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
 
R2 = Img2(:,:,1);
G2 = Img2(:,:,2);
B2 = Img2(:,:,3);
 
R2(bw) = R(bw);
G2(bw) = G(bw);
B2(bw) = B(bw);
 
RGB = cat(3,R2,G2,B2);
figure, imshow(RGB);
        Adapun hasil mathlabnya :

 RGB

Pada umumnya, berdasarkan kombinasi warna pada piksel, citra dibagi menjadi tiga jenis yaitu citra RGB, citra grayscale, dan citra biner.

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.


        Adapun mathlab untuk RGB :



        Adapun hasilnya :


-Adapun MATHLAB Grayscale:



Adapun hasilnya :



Perubahan RGB, Grayscale, Binary

        Berdasarkan jenis warnanya, citra digital dapat dibedakan menjadi tiga jenis yaitu citra RGB, citra grayscale, dan citra biner. Citra RGB (Red, Green, Blue) merupakan citra yang nilai intensitas pikselnya tersusun oleh tiga kanal warna yaitu merah, hijau, dan biru. Citra grayscale adalah citra yang nilai intensitas pikselnya berdasarkan derajat keabuan.

        Berikut ini merupakan contoh aplikasi pemrograman GUI Matlab untuk dasar-dasar pengolahan citra digital. Koding dapat dijalankan minimal menggunakan matlab r2014b (karena menggunakan komponen baru yaitu uitab dan fungsi baru yaitu histogram):

 HISTOGRAM

        Histogram citra merupakan diagram yang menggambarkan distribusi frekuensi nilai intensitas piksel dalam suatu citra. Sumbu horizontal merupakan nilai intensitas piksel sedangkan sumbu vertikal merupakan frekuensi/jumlah piksel
Adapun mathlab sebagai berikut :
clc; clear; close all;
 
I = imread('FotoAhmaddd.jpeg');
figure, imshow(I);
figure, imhist(I);
 
J = imadjust(I);
figure, imshow(J);
figure, imhist(J);
 
K = imadjust(I,[0.3 0.6],[0 0.3]);
figure, imshow(K);
figure, imhist(K);
 
L = imadjust(I,[0.3 0.6],[0.6 1]);
figure, imshow(L);
figure, imhist(L);

        Adapun hasil mathlab histogram sebagai berikut:

 MORFOLOGI

                Pengertian Morfologi

Istilah morfologi semula berasal dari pembelajaran mengenai bentuk-bentuk atau struktur tumbuhan dan hewan. Proses morfologi menunjukkan operasi tertentu yang dikenakan pada sebuah obyek dengan elemen terstruktur.

            Operasi morfologi adalah teknik pengolahan citra yang didasarkan pada bentuk segmen atau region dalam citra. Oprasi ini antara lain meliputi: pencarian batas/kontur, dilasi, erosi penutupan (closing), pembukaan (opening), dan pengisian (filling)

            Beberapa defenisi adalah titik yang dipakai dalam operasi morfologi:

·       Titik obyek, adalah titik yang merupakan bagian dari obyek. Biasanya direpresentasikan dengan nilai 0 (nol) atau warna hitam

·       Titik latar, adalah titik yang merupakan bagian latar. Biasanya direpresentasikan dengan nilai 1 (satu) atau warna putih

·       Titik tetangga adalah titik yang langsung bersebelahan dengan titik yang sedang ditinjau, yaitu yang berada di sebelah kiri, kanan, atas, dan bawah

Operasi-operasi morfologi citra, diantaranya:

 

1.     1. Dilasi

                Operasi dilasi dilakukan untuk memperbesar ukuran segmen obyek dengan menambah lapisan di sekeliling obyek. Terdapat du acara untuk melakukan operasi ini, yaitu dengan cara mengubah semua titik latar yang bertetangga dengan titik batas menjadi titik obyek, atau lebih mudahnya tetapkan setiap titik yang tetangganya adalah titik obyek menjadi titik obyek. Cara kedua, yaitu dengan mengubah semua titik di sekililing titik batas menjadi titik obyek, atau lebih mudahnya tetapkan semua titik tetangga sebuah titik obyek menjadi titik obyek.

 

a.      Algoritma Operasi Dilasi

-          Untuk semua titik dalam citra, cek apakah titik tersebut adalah titik obyek

Jika ya, maka ubah semua tetangganya menjadi titik obyek

Jika tidak, maka lanjut ke titik berikutnya

b.     Contoh Operasi Dilasi

c. Mathlab

                Berikut function sebagai berikut :

se=[1 0 1;0 1 0; 1 0 1]

a=imread('FotoAhmaddd.jpeg');

b=imdilate(a,se);

figure; imshow(a);

figure; imshow(b);

c=imerode(a,se);

figure; imshow(a);

figure; imshow(c);

        Dan hasilnya sebagai berikut :






1.     2. Erosi

            Operasi erosi adalah kebalikan dari dilasi. Pada operasi ini, ukuran obyek diperkecil dengan mengikis sekililing obyek. Cara yang dapat dilakukan juga dua. Pertama, yaitu dengan mengubah semua titik batas menjadi titik latar. Kedua, dengan menset titik di sekililing titik latar menjadi titik latar.

a.      Algoritma Operasi Erosi

-          Untuk semua titik dalam citra, cek apakah titik tersebut adalah titik latar

o   Jika ya, maka ubah semua tetangganya menjadi titik latar

o   Jika tidak, maka lanjutkan ke titik berikutnya

b.     Contoh Operasi Erosi



C. Matlab

        Adapun format mathlabnya sebagai berikut:

%syntax untuk memilih gambar

[FileName,PathName] = uigetfile('*.jpg','Pilih File Gambar');

 

%syntax untuk memberi variabel pada gambar yang dipilih

a = strcat(PathName,FileName);

 

%syntax untuk memasukkan variabel a sebagai nilai dari variabel b

b = imread(a);

 

%syntax untuk mengabu-abukan citra asli

gray=rgb2gray(b);

 

%syntax untuk mengerosikan citra asli

se=strel('ball',5,5);

erosi=imerode(gray,se);

 

%syntax untuk menempatkan citra asli, keabuabuan, dan citra erosi kedalam axes

axes(handles.axes1), imshow(b)

axes(handles.axes2), imshow(gray)

axes(handles.axes3), imshow(erosi)

        Dari fucntion didapat hasil running sebagai berikut:


1.     3. Penutupan (Closing)

            Operasi penutupan adalah kombinasi antara operasi dilasi dan erosi yang dilakukan secara berurutan. Citra asli dilasasi terlebih dahulu, kemudian hasilnya dierosi. Operasi ini digunakan untuk menutup atau menghilangkan lubang-lubang kecil yang ada dalam segmen obyek. Operasi penutupan juga digunakan untuk menggabungkan dua segmen obyek yang saling berdekatan (menutup sela antara dua obyek yang sangat berdekatan).

a.      Algoritma Operasi Penutupan

-          Untuk semua titik dalam citra, cek apakah titik tersebut adalah titik obyek

            Jika ya, maka ubah semua tetangganya menjadi titik obyek

            Jika tidak, maka lanjutkan ke titik berikutnya

-          Cek apakah titik tersebut adalah titik latar

Jika ya, maka ubah semua tetangganya menjadi titik latar

Jika tidak, maka lanjutkan ke titik berikutnya

b.     Contoh Operasi Penutupan



a.      Matlab

Adapun function dari closing sebagai berikut :

f = imread('FotoAhmaddd.jpeg');

SE = strel('disk', 9, 0)

j = imopen(f, SE);

figure, imshow(j);

k = imclose(f, SE);

figure, imshow(k);

l = imclose(j, SE);

figure, imshow(l);

            Dan didapatkan hasil runningnya sebagai berikut:


1.   4.   Pembukaan (Opening)

Operasi pembukaan juga merupakan kombinasi antara operasi erosi dan dilasi yang dilakukan secara beruntun, tetapi citra asli dierosi terlebih dahulu baru kemudian hasilnya didalasi. Operasi ini dilakukan untuk memutus bagian-bagian dari obyek yang hanya terhubung dengan satu atau dua buah titik saja.

a.      Algoritma Operasi Pembukaan

-          Untuk semua titik dalam citra, cek apakah titik tersebut adalah titik latar

o   Jika ya, maka ubah semua tetangganya menjadi titik latar

o   Jika tidak, maka lanjutkan ke titik berikutnya

-          Cek apakah titik tersebut adalah titik obyek

o   Jika ya, maka ubah semua tetangganya menjadi titik obyek

o   Jika tidak, maka lanjutkan ke titik berikutnya

b.     Contoh Operasi Pembukaan

a.      Matlab

Adapun function dari opening adalah sebagai berikut:

f = imread('FotoAhmaddd.jpeg');

SE = strel('disk', 9, 0)

j = imopen(f, SE);

figure, imshow(j);

k = imclose(f, SE);

figure, imshow(k);

l = imclose(j, SE);

figure, imshow(l);

            Berikut hasi dari opening :


Wednesday, December 14, 2022

PERBAIKAN CITRA
Perbaikan kualitas citra (image enhancement) merupakan salah satu proses awal dalam pengolahan citra (image preprocessing). Perbaikan kualitas diperlukan karena seringkali citra yang dijadikan objek pembahasan mempunyai kua litas yang buruk, misalnya citra mengalami derau (noise) pada saat pengiriman melalui saluran transmisi, citra terlalu terang/gelap, citra kurang tajam, kabur, dan sebagainya. Melalui operasi pemrosesan awal inilah kualitas citra diperbaiki sehingga citra dapat digunakan untuk aplikasi lebih lanjut, misalnya untuk aplikasi pengenalan (recognition) objek di dalam citra
Adapun mathlabnya sebagai berikut :

I=imread('FotoAhmaddd.jpeg');
J=imadjust(I,[40/255 204/255],[0/255 255/255]);
figure,imshow(I);
figure,imhist(I);
figure,imshow(J);
figure,imhist(J);

Adapun hasil mathlabnya sebagai berikut :




TRESHOLDING
    Thresholding merupakan salah satu metode segmentasi citra yang memisahkan antara objek dengan background dalam suatu citra berdasarkan pada perbedaan tingkat kecerahannya atau gelap terang nya. Region citra yang cenderung gelap akan dibuat semakin gelap (hitam sempurna dengan nilai intensitas sebesar 0), sedangkan region citra yang cenderung terang akan dibuat semakin terang (putih sempurna dengan nilai intensitas sebesar 1). Oleh karena itu, keluaran dari proses segmentasi dengan metode thresholding adalah berupa citra biner dengan nilai intensitas piksel sebesar 0 atau 1. Setelah citra sudah tersegmentasi atau sudah berhasil dipisahkan objeknya dengan background, maka citra biner yang diperoleh dapat dijadikan sebagai masking utuk melakukan proses cropping sehingga diperoleh tampilan citra asli tanpa background atau dengan background yang dapat diubah-ubah.
Adapun mathlabnya sebagai berikut :
clc; clear; close all;
 
% Object
Img = imread('FotoAhmaddd.jpeg');
figure, imshow(Img);

Gray = rgb2gray(Img);
figure, imshow(Img);

bw = im2bw(Gray,.99);
figure, imshow(bw);

bw = imcomplement(bw);
figure, imshow(bw);

bw = imfill(bw,'holes');
bw = bwareaopen(bw,100);
str = strel('disk',5);
bw = imerode(bw,str);
figure, imshow(bw);

% Background
Img2 = imread('123.png');
figure, imshow(Img2);

R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
 
R2 = Img2(:,:,1);
G2 = Img2(:,:,2);
B2 = Img2(:,:,3);
 
R2(bw) = R(bw);
G2(bw) = G(bw);
B2(bw) = B(bw);
 
RGB = cat(3,R2,G2,B2);
figure, imshow(RGB);
        Adapun hasil mathlabnya :


                                                       PENGOLAHAN CITRA PENGERTIAN                          Pengolahan citra digital sendiri...