Pengolahan Citra Biner
Penghitungan terhadap atribut-atribut yang melekat pada suatu objek dalam citra digital secara sederhana dapat dilakukan dengan cara mengkonversi citra asli (RGB ataupun grayscale) menjadi citra biner terlebih dahulu. Setelah diperoleh citra biner, maka selanjutnya atribut-atribut (misalnya luas dan keliling) dapat dihitung. Namun terkadang citra biner tersebut perlu diolah lebih lanjut agar citra biner benar-benar tepat merepresentasikan objek yang dimaksud.
Berikut ini merupakan contoh aplikasi pemrograman matlab untuk melakukan proses segmentasi dan analisis citra. Langkah-langkah nya yaitu:
1. Membaca dan menampilkan citra asli. Pada contoh ini citra yang digunakan adalah citra ‘airplane.jpg’ di mana objek yang dikehendaki adalah berupa pesawat, sedangkan background adalah berupa langit.
clc; clear; close all; warning off all; Img = imread('airplane.jpg'); figure, imshow(Img);
sehingga diperoleh tampilan
2. Melakukan segmentasi dengan metode deteksi tepi. Deteksi tepi dilakukan melalui operasi konvolusi dengan operator selisih terpusat
% Konvolusi dengan operator selisih terpusat I = double(rgb2gray(Img)); d1x = [-1 0 1]; d1y = [-1;0;1]; Ix = conv2(I,d1x,'same'); Iy = conv2(I,d1y,'same'); J = sqrt((Ix.^2)+(Iy.^2)); figure, imshow(J,[]);
hasil deteksi tepi yaitu
3. Melakukan operasi thresholding sehingga diperoleh citra biner yang merepresentasikan luasan dari objek. Luas objek kemudian dihitung dengan cara menjumlahkan seluruh angka 1 (piksel berwarna putih) pada citra biner yang diperoleh. Luas objek dihitung dalam satuan piksel.
K = J>10; L = imclearborder(K); M = imfill(L,'holes'); N = bwareaopen(M,100); figure, imshow(N); area = sum(sum(N))
diperoleh citra biner sebagai berikut
luas objek yang diperoleh adalah
4. Melakukan operasi morfologi untuk mendapatkan boundaries dari citra biner. Kemudian dilakukan penghitungan keliling objek dengan cara menjumlahkan seluruh angka 1 (piksel berwarna putih) pada citra biner yang diperoleh. Keliling objek dihitung dalam satuan piksel.
O = bwmorph(N,'remove'); figure, imshow(O); perimeter = sum(sum(O))
sehingga didapatkan citra biner sebagai berikut
keliling objek yang diperoleh adalah
5. Menampilkan boundaries objek pada citra asli
% Membuat Boundaries [B,L] = bwboundaries(N,'noholes'); figure,imshow(Img) hold on for k = 1:length(B) boundary = B{k}; plot(boundary(:,2), boundary(:,1), 'y', 'LineWidth', 2) end
dihasilkan tampilan seperti pada gambar berikut
6. Menampilkan bounding box pada citra asli
% Membuat Bounding Box [row,col] = find(N==1); [a,b] = size(N); mask = false(a,b); mask(min(row):max(row),min(col):max(col)) = 1; mask = bwperim(mask,8); mask = imdilate(mask,strel('square',4)); R = Img(:,:,1); G = Img(:,:,2); B = Img(:,:,3); R(mask) = 255; G(mask) = 255; B(mask) = 0; RGB = cat(3,R,G,B); figure, imshow(RGB);
Tampilan citra yang dihasilkan adalah
7. Melakukan cropping hasil segmentasi
% Melakukan cropping hasil segmentasi crop = imcrop(Img,[min(col) min(row) max(col)-min(col) max(row)-min(row)]); figure, imshow(crop);
Hasil proses cropping adalah
File source code lengkap beserta citra pada pemrograman di atas dapat diperoleh melalui halaman berikut ini: Source Code
Posted on October 18, 2016, in Pengenalan Matlab, Pengolahan Citra and tagged binary image processing, boundaries citra, bounding box citra, citra adalah, citra biner adalah, Citra Digital, citra digital adalah, deteksi tepi, edge detection, image processing adalah, koding pengolahan citra, luas dan keliling citra, Pengenalan Pola, pengertian citra, pengertian citra digital, pengolahan citra, pengolahan citra biner, Pengolahan Citra Digital, segmentasi adalah, segmentasi citra. Bookmark the permalink. 18 Comments.
mau nanya kalau mencari nilai skewness, kurtosis dan entrophy dari data ini apakah diperlukan proses pencarian luas dan keliling? atau langsung cari nilai skewness, kurtosis dan entrophy nya?
terima kasih
Skewness, kurtosis dan entrophy merupakan parameter yang diekstrak dari ciri tekstur. Nilai tersebut diperoleh dari citra grayscale. Sedangkan luas dan keliling diekstrak dari ciri morfologi yang diperoleh dari citra biner
Assalamualaikum
permisi mas adi mau tanya
J>10;
N = bwareaopen(M,100);
nilai 10 dan 100 nya itu berdasarkan apa ya mas?
terimakasih sebelumnya
Waalaikumsalam imam
nilai tersebut diperoleh dengan cara trial & error
oke terimakasih mas adi
sama sama imam
Assalamualaikum mas
sebelumnya makasih banyak ilmu2 nya mas, saya banyak belajar dari website ini. semoga kelak jadi amal jariah di akhirat nanti.
saya mau nanya mas, perbedaan antara image processing thresholding dengan pengolahan citra biner apa ya mas?
makasih banyak mas
waalaikumsalam rahmat
thresholding merupakan salah satu metode untuk mengubah citra grayscale menjadi citra biner
pengolahan citra biner ada berbagai macam seperti operasi morfologi, analisis objek, dll
Mas Adi, misal deteksi tepi digunakan untuk jaringan syaraf tiruan apakah bisa ya?
Trimakasih
Bisa diterapkan hanung
mau nanya mas, mencari nilai perimeter bisa di terapkan untuk deteksi tepi canny tidak?
terima kasih atas bantuan dan ilmunya
Bisa rifqi
Segmentasi menggunakan deteksi tepi canny kemudian dilanjutkan dengan pengukuran perimeter objek hasil segmentasi
mau nanya mas, klo misal pesawatnya lebih dari satu atau ada 10 gtu bsa gak mas? saya nyoba pas memnuat boundingbos nya, dia ngedetect secara keseluruhan image nya mas.
terima kasih mas.
bisa
bisa dicoba mengimplementasikan koding yang ada pada halaman berikut ini
https://pemrogramanmatlab.com/2017/07/26/ekstraksi-ciri-bentuk-dan-ukuran/
Mau nanya mas, apakah hasil segementasi thresholding & bounding box memiliki nilai yang bisa dipakai untuk proses klasterisasi citra?
Bisa kurnia
Klasterisasi bisa dilakukan dengan cara melakukan ekstraksi ciri thd citra hasil segmentasi
Atau bisa juga langsung tanpa melalui ekstraksi ciri secara manual
Ekstraksi ciri ukuran parameternya area dan perimeter, Ekstraksi ciri bentuk parameternya metric dan eccentricity, maaf mas adi kalo untuk ekstrasi ciri tekstur parameternya apaya dari thd dan bounding box diatas? ,Terima kasih mas
materi mengenai ekstraksi ciri tekstur bisa dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/pengenalan-pola-citra-digital-menggunakan-matlab/pola-tekstur/