Sering kali orang-orang mengcrop atau memotong gambar dengan aplikasi pengolah gambar. Mereka tidak menggunakan perintah atau koding dalam membuatnya. Nah disini aku akan menge share tutorial memotong gambar dengan kode pada matlab. Di tutorial kali ini tidak hanya berisi materi tentang cropping saja, tetapi juga memuat materi tentang Histogram citra.
Didalam pengenalan pola atau pattern recognition istilah gambar dikenal dengan nama citra. Citra tersebut dapat di crop hanya dengan memanggil function pada matlab. Untuk dapat menge crop citra agan dapat menggunakan fungsi :
Imcrop(matriks citra, titiksudut);
Matriks citra adalah gambarnya, dan titiksudut adalah [x y a b].
x adalah titik awal koordinat x dimulai cropping.
y adalah titik awal koordinat y dimulai cropping.
a adalah panjangnya jumlah pixel kearah horizontal atau kearah x.
b adalah panjangnya jumlah pixel kearah vertikal atau kearah y.
Untuk x dan y dimulai dari titik kiri atas.
#Kode Crop Citra
Simpan dengan nama citracrop.m :
%Nama File: citracrop.m
%======================
clear all
I = imread('fuji.jpg');
I2 = imcrop(I,[80 500 200 900]); %imcrop(imread(), [x y a b]);
figure(1)
imshow(I)
title('Citra asli');
figure(2)
imshow(I2)
title('Citra crop');
imwrite(I2,'camcrop.tif','tif')
Penjelasan:
Pertama sediakan dulu gambar fuji.jpg, dan taruh gambar tersebut satu folder dengan script diatas disimpan. Penjelasan koding:
% berfungsi untuk memberikan komentar.
imread() berfungsi untuk mengambil gambar. Didalam kode yang kita buat ini gambar yang di load adalah gambar fuji.jpg .
imcrop(I,[80 500 200 900]) atau imcrop() berfungsi untuk memotong gambar. Disini kita memasukkan variabel I. Dimana variabel I tersebut memuat gambar fuji.jpg . Nilai yang dimasukkan adalah[80 500 200 900] maka diketahui x = 80, y = 500, a = 200, dan b = 900. Ini berarti Cropping dimulai dari titik kiri atas di perpotongan x = 80 dan y = 500. Kemudian a = 200 untuk menentukan panjang mendatar atau horizontal (mengarah sumbu x)-nya = 200. Serta b = 900 untuk menentukan berapa panjang vertikal (mengarah sumbu y) = 900.
figure() berfungsi untuk membuat jendela baru yang nantinya akan kita gunakan menampilkan gambar.
imshow() berfungsi untuk menampilkan gambar.
title() berfungsi untuk menampilkan judul pada figure() .
imwrite(I2,'camcrop.tif','tif') atau imwrite() berfungsi untuk menyimpan hasil pemotongan gambar tersebut. Dimana gambar yang akan disimpan dimuat dalam variabel I2, dengan nama camcrop.tif dan berekstensi tif.
#Hasil Cropping Citra
#HISTOGRAM CITRA
Histogram citra sangat lah penting, di dalam histogram isi citra digital dapat diketahui. Histogram citra adalah grafik yang menggambarkan penyebaran nilai-nilai intensitas pixel dari suatu citra atau bagian tertentu didalam citra.
Dari sebuah histogram dapat diketahui frekuensi kemunculan nisbi (relative) dari intensitas pada citra tersebut. Histogram juga dapat menunjukkan banyak hal tentang kecerahan (brightness) dan kontas (contrast) dari sebuah gambar.
Sebelum memulai koding perlu agan ketahui, gambar rice.png sudah disediakan oleh matlab jadi tidak perlu agan sediakan lagi, kecuali kalau memang agan ingin gambar yang lain. Langsung saja kita memulai koding:
%Nama File: citrahist.m
%======================
clear all;
I = imread ('rice.png');
GM = im2double(I);
%penambahan derau
final_length = length(GM);
noise = 0.25*randn(256);
im_noise=GM+noise;
%histogram
figure;
subplot(2,2,1);
imhist(GM);
title('histogram');
subplot(2,2,2);
imshow(GM);
title('Citra asli');
subplot(2,2,4);
imshow(im_noise);
title('Citra + derau');
subplot(2,2,3);
imhist(im_noise);
title('histogram Citra + derau');
Penjelasan:
Simpan kode diatas dengan nama citrahist.m .
im2double() berfungsi untuk mengkonversi ke kelas ganda dan men-rescaling data. Kode ini jika didalam script diatas berfungsi untuk mengubah matrik gambar menjadi berformat double semua, jadi ini bertujuan agar matrik gambar dapat dikalikan dengan angka random/acak sehingga dapat menghasilkan efek noise pada gambar.
length() berfungsi untuk menghitung tinggi gambar. Disini gambar memiliki ukuran 256 x 256 pixel, jadi tinggi gambar adalah 256.
randn() berfungsi untuk memberikan nilai acak/random . Jika kode tersebut dijalankan tanpa parameter maka yang mucul hanya 1 nilai acak.
randn(256) atau randn(n)berfungsi untuk memberikan nilai acak/random. Jika memiliki parameter 256, maka nanti hasilnya akan terbentuk matrik ber ordo 256x256 .
im_noise=GM+noise; berfungsi untuk menjumlahkan nilai matrik gambar yang telah dikonversi ke double dengan nilai acak. Ini berfungsi agar gambar berubah menjadi ada efek noise nya.
subplot() berfungsi untuk membuat axes atau koordinat x dan y yang didalam nya untuk menampilkan grafik nantinya .
subplot(x, y, z) berfungsi untuk membuat axes atau koordinat x dan y yang didalam nya untuk menampilkan grafik nantinya . Semakin x diberikan nilai rendah maka tampilan grafik akan semakin tinggi. Semakin y diberikan nilai rendah maka tampilan grafik akan semakin panjang. Parameter z digunakan untuk mengatur tata letak, jika di script diatas jika z nilainya ganjil maka akan ditempat kan dikiri, dan jika genap di kanan.
figure; berfungsi untuk membuat jendela baru.
imhist() berfungsi untuk membuat gambar agar tampil nilai atau grafiknya pada subplot().
#Hasil Histogram Citra
Bagikan
Cropping Gambar dan Membuat Histogram Citra dengan Matlab
4/
5
Oleh
Bayu Ambika
Silahkan berkomentar secara bijak dan sesuai dengan topik pembahasan ...
Untuk menyisipkan kode pendek, gunakan <i rel="code"> ... KODE ... </i>
Untuk menyisipkan kode panjang, gunakan <i rel="pre"> ... KODE ... </i>
Untuk menyisipkan gambar, gunakan <i rel="image"> ... URL GAMBAR ... </i>