Pengolahan citra ke citra negative,
biner, dan rotasi menggunakan octave
Nama: DharmaAdi Prasetyo
NIM :1503030030
Matkul: Pengolahan Citra Digital
Dosen Pengampu : Arif Johar Taufik S.T., M.T
A.
Citra
Negatif
Membuat citra terlihat negatif dengan rumus:
citrab
= 255 – citraa
nilai
255 ini apabila gambar yang akan diolah adalah 8 bit. Citra b adalah bentuk
citra a yang baru berupa biner dengan mebaliknya menjadi negative seperti pada
gambar 1 dibawah ini:
Gambar 1 citra negative
Program
yang dibuat di octave adalah sebagai berikut:
clear;
function histo(Img)
% HISTO Digunakan sebagai contoh pembuatan histogram
[jum_baris, jum_kolom] = size(Img);
Img = double(Img);
Histog = zeros(256, 1);
for baris=1 : jum_baris
for
kolom=1 : jum_kolom
Histog(Img(baris,
kolom)+1) = ...
Histog(Img(baris,
kolom)+1) + 1;
end
end
% Tampilkan dalam bentuk diagram batang
Horis = (0:255)';
bar(Horis, Histog);
endfunction
Img = imread('C:\Users\Public\Pictures\Sample
Pictures\Koala.jpg');
Negatif= 255-Img;
subplot (2,2,1); imshow(Img); title ('Gambar Asli');
subplot (2,2,2); histo(Img); title ('Histo Gambar Asli');
subplot (2,2,3); imshow(Negatif); title ('Gambar
Negatif');
subplot (2,2,4); histo(Negatif); title ('Histo
Gambar Negatif');
B.
Citra biner
Strategi
yang dipakai yaitu dengan menerapkan suatu nilai yang dikenal sebagai nilai
ambang (threshold). Nilai tersebut dipakai untuk menentukan suatu
intensitas akan dikonversikan menjadi 0 atau menjadi 1. Secara matematis,
konversi dinyatakan dengan rumus:
Berikut adalah
program pada octave:
clc; clear;
Img
= imread('C:\Users\Public\Pictures\Sample Pictures\Koala.jpg');
[tinggi, lebar]
= size(Img);
ambang = 127; %
Nilai ini bisa diubah-ubah
biner =
zeros(tinggi, lebar);
for j=1 : tinggi
for i=1 : lebar
if Img(j, i) >= ambang
Biner(j, i) = 0;
else
Biner(j, i) = 1;
end
end
subplot (2,1,1);
imshow(Img); title ('Gambar Asli');
subplot (2,1,3);
imshow(Biner); title ('Gambar Biner');
end
penjelasan:
Kode
Img =
imread('C:\Users\Public\Pictures\Sample Pictures\Koala.jpg');
merupakan
perintah untuk membaca citra Koala.png. Hasilnya disimpan
diImg.
Lalu,
[tinggi,
lebar] = size(Img);
berguna
untuk mendapatkan lebar dan tinggi citra.
Pernyataan
ambang
= 210;
digunakan
untuk menentukan nilai ambang bagi penentuan konversi suatu piksel
menjadi
0 atau 1. Nilai ambang berkisar antara 0 sampai dengan 255.
Pernyataan
for
j=1 : tinggi
for i=1 : lebar
if
Img(j, i) >= ambang
Biner(j,
i) = 0;
else
Biner(j,
i) = 1;
end
end
end
menangani
penentuan nilai 0 atau 1 pada citra biner untuk semua piksel dalam citra
(ditangani dengan dua buah for). Penentuan dilakukan melalui pernyataan if.
Dalam hal ini,
Img(j,
i)
menyatakan
nilai intensitas piksel pada (baris, kolom). Setelah
for
j=1 : tinggi
berakhir,
maka Biner berisi citra biner. Selanjutnya, citra ditampilkan melalui
subplot (2,1,1);
imshow(Img); title ('Gambar Asli');
subplot (2,1,3);
imshow(Biner); title ('Gambar Biner');
Hasilnya seperti
berikut.
Gambar 2 Citra Biner
C.
Citra Rotasi
Suatu
citra dapat diputar dengan sudut𝜃
seiring
arah jarum jam atau berlawanan arah jarum jam dengan pusat putaran pada
koordinat (0,0).
Dengan
program dioctave:
%
ROTASI Melakukan Operasi pemutaran citra.
%
Menggunakan pendekatan pemetaan ke belakang
clear
all;
F
= imread('C:\Users\Public\Pictures\Sample Pictures\Koala.jpg');
[tinggi,
lebar] = size(F);
sudut
= 15; % Sudut pemutaran
rad
= pi * sudut/180;
cosa
= cos(rad);
sina
= sin(rad);
F2
= double(F);
for
y=1 : tinggi
for
x=1 : lebar
x2
= round(x * cosa + y * sina);
y2
= round(y * cosa - x * sina);
if
(x2>=1) && (x2<=lebar) && ...
(y2>=1)
&& (y2<=tinggi)
G(y,
x) = F2(y2, x2);
else
G(y,
x) = 0;
end
end
end
G
= uint8(G);
subplot
(2,1,1); imshow(F); title ('Gambar Asli');
subplot
(2,1,2); imshow(G); title ('Gambar rotasi');
dan
hasilnya adalah sebagai berikut:
Tidak ada komentar:
Posting Komentar