Dutormasi.com – Pada kesempatan kali ini dutormasi masih membahasa mengenai pengolahan citra yaitu melanjutkan pengolahan citra yang kita bahasa sebelumnya. Nah bagi teman teman yang belum membaca postingan sebelumnya, kamu bisa membaca di Cara Melakukan Operasi Dasar Pengolahan Citral Pada Matlab.
Selanjutnya ini kita masih membahas pengolahan citra tetapi sedikit berbeda dengan pengolahan citra sebelumnya. Untuk postingan ini kita akan membahasa mengenai operasi geometri, konvolusi dan segmentasi citra.
Baiklah biar tidak memperpanjang pendahuluan saya, kita langsung saja ke pembahasan yang teman teman tunggu ni. Untuk itu simak dan bacalah penjelasan dibawah ini secara baik baik agar anda mudah mengerti dan menangkap pembahasannya. Siappp ?
Operasi Geomteri
1. Operasi Translasi
Source Code :
Tx = 20;
Ty = 50;
A = imread(‘cameraman.tif’);
[brs kol] = size(A);
for x = 1 : brs
for y = 1 : kol
B(x+Tx, y+Ty) = A(x,y);
end
end
B = B(1:brs,1:kol);
figure, imshow(uint8(A));
figure, imshow(uint8(B));
Hasi Output Program diatas :
2. Operasi Cropping
Source Code :
I = imread(‘cameraman.tif’);
[brs kol] = size(I);
x1 = 50;
x2 = 200;
y1 = 50;
y2 = 200;
I(1:x1,:) = 0;
I(x2:brs,:) = 0;
I(:,1:y1) = 0;
I(:,y2:kol) = 0;
imshow(I);
Hasil Output Program diatas :
3. Operasi Flipping
A. Flipping Vertikal
Source Code :
I = imread(‘cameraman.tif’);
[brs kol] = size(I);
J = repmat(0,brs,kol);
mirror = floor(kol/2);
for x = 1 : brs-1
for y = 1 : kol-1
J(x,y) = I((2*mirror)-x, y);
end
end
figure, imshow(uint8(J));
Hasil Output Program diatas :
I = imread(‘cameraman.tif’);[brs kol] = size(I);J = repmat(0,brs,kol);mirror = floor(brs/2);for x = 1 : brs-1for y = 1 : kol-1J(x,y) = I(x, (2*mirror)-y);endendfigure, imshow(uint8(J));
function J = rotasi(I,T)m = size(I,1);n = size(I,2);if rem(m,2) == 0, Xp = floor((m+1)/2)+1;elseXp = floor((m+1)/2);endif rem(n,2) == 0,Yp = floor((n+1)/2)+1;elseYp = floor((n+1)/2);endX = zeros(m,n);Y = zeros(m,n);for x = 1 : m, X(x,1:n) = x;endfor y = 1 : n, Y(1:m,y) = y;endXa = round(Xp + (X – Xp)*cosd(T) – (Y – Yp)*sind(T));Ya = round(Yp + (X – Xp)*sind(T) + (Y – Yp)*cosd(T));r = size(min(Xa(:)) : max(Xa(:)),2);c = size(min(Ya(:)) : max(Ya(:)),2);xs = round(abs(r-m)/2);ys = round(abs(c-n)/2);J = zeros(r,c);for x = 1 : mfor y = 1 : nJ(Xa(x,y)+xs,Ya(x,y)+ys) = I(x,y);endend
clear all; clc;T = 45;I = imread(‘canoe.tif’);J = rotasi(I,T);imshow(uint8(J),’initialmagnification’,’fit’);
5. Operasi Scalling
function J = perbesar(I,ShX,ShY)m = size(I,1);n = size(I,2);r = m*ShX;c = n*ShY;J = zeros(r,c);for x = 1 : mfor y = 1 : nJ((x-1)*ShX+1 : x*ShX, (y-1)*ShY+1 : y*ShY) = I(x,y);endend
clear all; clc;I = imread(‘cameraman.tif’);ShX = 2;ShY = 1;J = perbesar(I,ShX,ShY);imshow(uint8(J));
Konvolusi
function B = convolve(A, k);[r c] = size(A);[m n] = size(k);h = rot90(k, 2);center = floor((size(h)+1)/2);left = center(2) – 1;right = n – center(2);top = center(1) – 1;bottom = m – center(1);Rep = zeros(r + top + bottom, c + left + right);for x = 1 + top : r + topfor y = 1 + left : c + leftRep(x,y) = A(x – top, y – left);endendB = zeros(r , c);for x = 1 : rfor y = 1 : cfor i = 1 : mfor j = 1 : nq = x – 1;w = y -1;B(x, y) = B(x, y) + (Rep(i + q, j + w) * h(i, j));endendendend
clear; clc;I = [4 4 3 5 4;6 6 5 5 2;5 6 6 6 2;6 7 5 5 3;3 5 2 4 4];k = [0 -1 0;-1 4 -1;0 -1 0];Hsl = convolve(I, k)
Maka hasil output program diatas adalah :
Untuk melakukan konvolusi pada cameraman. tif . anda bisa melakuakan perintah seperti dibawah ini :
Source Code :
clear; clc;
I = imread(‘cameraman.tif’);
k = ones(3)/9;
Hsl = convolve(I, k);
imshow(I);
figure, imshow(uint8(Hsl));
1. Operasi Pengambangan
F = imread(‘cameraman.tif’);[r c] = size(F);T = 128;for x = 1 : rfor y = 1 : cif F(x,y) >= TG(x,y) = 255;elseG(x,y) = 0;endendendfigure, imshow(F);figure, imshow(G);
Nah begitulah pembahasan mengenai pengolaha citra dasar pada matlab pembahasan ke 2. Apakah anda mengerti ? semoga mengerti dengan pembahasannya nya ya. Teman teman bisa menyalin langsung program dan bisa langsung di eksekusi pada aplikasi matlab anda.