Dutormasi.com – Haloo sahabat dutormasi ! dipostingan ini dutormasi akan membahas mengenai matlab lagi ni yaitu membahas mengenai cara melakukan Cara Pendeteksian Tepi Operator Gradien Pertama, Operator Robert, Operator Prewit, dan Operator Sobel Matlab. Sebelum kita kepemabahasan pemrograman nya kita harus mengetahui pendektesian tepi itu apa.

Tepi adalah perubahan intensitas deraja keabuan yang mendadak bersar dalam jarang yang singkat. Perbedaan intensitas ini adalah yang menampakan garis batas suatu daerah atau sebuah obejk pada didalam citra.

Ada beberapa eknik mendeteksi tepi. Teknik mendeteksi tepi tersebut adalah :

  1. Operarot gradien pertama
  2. Operator turunan kedua
  3. Operator kompas

1. Operator Gradien Pertama

function J = edge_detection(I, Thres)
Gx = [-1 1];
Gy = [-1 1];
Gradien_x = convolve(I, Gx)
Gradien_y = convolve(I, Gy)
Magnitudo = sqrt((Gradien_x.^2) + (Gradien_y.^2))
%Arah_Gradien = atan(Gradien_y./Gradien_x);
J = thresholding(Magnitudo, Thres);
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 + top
for y = 1 + left : c + left
Rep(x,y) = A(x – top, y – left);
end
end
B = zeros(r , c);
for x = 1 : r
for y = 1 : c
for i = 1 : m
for j = 1 : n
q = x – 1;
w = y -1;
B(x, y) = B(x, y) + (Rep(i + q, j + w) * h(i, j));
end
end
end
end

Baca Juga :  Tutorial Membuat Pengolahan Citra menggunakan MATLAB | 2020

function Hasil = thresholding(Array, T)
row = size(Array, 1);
col = size(Array, 2);
Hasil = zeros(row, col);
for x = 1 : row
for y = 1 : col
if Array(x, y) >= T
Hasil(x, y) = 1;
else
Hasil(x, y) = 0;

end
end
end

Source code diatas disimpan dengan nama m-file “edge_direction.m”. Kemudian bisa menguji keberhasilan souce code diatas. dengan membuat m-file lagi dan masukkan kode source code dibawah ini:

clear; clc;
I = imread(‘cameraman.tif’);
Hsl = edge_detection(im2double(I), 0.25);
imshow(I);
figure, imshow(im2uint8(Hsl));

Jalankan souce code diatas maka hasil tampilan menjadi seperti dibawah ini :

Cara Pendeteksian Tepi Operator Gradien Pertama, Operator Robert, Operator Prewit, dan Operator Sobel Matlab
Cara Pendeteksian Tepi Operator Gradien Pertama, Operator Robert, Operator Prewit, dan Operator Sobel Matlab

Program edge ditecttion menggunakan operator robert :

  1. robert.m

source code :

% baca citra dan memberikan noise salt & pepper
I=imread(‘tape.png’);
I=imnoise(I,’salt & pepper’);
imshow(I), title(‘Citra Asli Terkena Noise’);
Ig=rgb2gray(I);
Igm=medfilt2(Ig,[5 5]);
Mx=[1 0;0 -1];
My=[0 -1;1 0];
Gy=imfilter(double(Igm),My,’symmetric’);
Gx=imfilter(double(Igm),Mx,’symmetric’);
M=sqrt(Gx.^2+Gy.^2);
mmax=max(max(M));
mmin=min(min(M));
T=(mmax+mmin)/2;
T=(T/mmax); % normalisasi threshold
M=M/mmax; % normalisasi citra
miu1=.1;
miu2=.2;
del_miu=abs(miu1-miu2);
[r c]=size(M);
an=1;
while an<=500
for ii=1:r
for jj=1:c
if M(ii,jj)<T
M1(ii,jj)=M(ii,jj);
else
M2(ii,jj)=M(ii,jj);
end
end
end
miu1=mean2(M1);
miu2=mean2(M2);
T=(miu1+miu2)*2;
an=an+1;
end
for ii=1:r
for jj=1:c
if M(ii,jj)<T
M(ii,jj)=0;
else
M(ii,jj)=1;
end
end
end

figure, imshow(M), title(‘Program Sendiri Untuk Robert Filtering’);

Baca Juga :  Critical Review Jurnal Deteksi Keaslian Uang Kertas Berdasarkan Watermark Dengan Pengolahan Citra Digital

Tampilan hasil source code diatas :

2. Prewitt.m

source code :

% baca citra dan memberikan noise salt & pepper
I=imread(‘tape.png’);
I=imnoise(I,’salt & pepper’);
imshow(I), title(‘Citra Asli Terkena Noise’);
Ig=rgb2gray(I);
Igm=medfilt2(Ig,[5 5]);
% 4. terapkan operasi prewitt
Mx=[-1 0 1; -1 0 1; -1 0 1];
My=[1 1 1; 0 0 0; -1 -1 -1];
Gy=imfilter(double(Igm),My,’symmetric’);
Gx=imfilter(double(Igm),Mx,’symmetric’);
M=sqrt(Gx.^2+Gy.^2);
mmax=max(max(M));
mmin=min(min(M));
T=(mmax+mmin)/2;
T=(T/mmax); % normalisasi threshold
M=M/mmax; % normalisasi citra
miu1=.1;
miu2=.2;
del_miu=abs(miu1-miu2);
[r c]=size(M);
an=1;
while an<=500
for ii=1:r
for jj=1:c
if M(ii,jj)<T
M1(ii,jj)=M(ii,jj);
else
M2(ii,jj)=M(ii,jj);
end
end
end
miu1=mean2(M1);
miu2=mean2(M2);
T=(miu1+miu2)*2;
an=an+1;
end
for ii=1:r
for jj=1:c
if M(ii,jj)<T
M(ii,jj)=0;
else
M(ii,jj)=1;
end
end
end

figure, imshow(M), title(‘Program Sendiri Untuk prewitt Filtering’);

Hasil tampilan source code diatas :

3. Sobel.m

Source code :

% baca citra dan memberikan noise salt & pepper
I=imread(‘tape.png’);
I=imnoise(I,’salt & pepper’);
imshow(I), title(‘Citra Asli Terkena Noise’);
Ig=rgb2gray(I);
Igm=medfilt2(Ig,[5 5]);
% 4. terapkan operasi sobel
Mx=[-1 0 1; -2 0 2; -1 0 1];
My= – Mx;
Gy=imfilter(double(Igm),My,’symmetric’);
Gx=imfilter(double(Igm),Mx,’symmetric’);
M=sqrt(Gx.^2+Gy.^2);
mmax=max(max(M));
mmin=min(min(M));
T=(mmax+mmin)/2;
T=(T/mmax); % normalisasi threshold
M=M/mmax; % normalisasi citra
miu1=.1;
miu2=.2;
del_miu=abs(miu1-miu2);
[r c]=size(M);
an=1;
while an<=500
for ii=1:r
for jj=1:c
if M(ii,jj)<T
M1(ii,jj)=M(ii,jj);
else
M2(ii,jj)=M(ii,jj);
end
end
end
miu1=mean2(M1);
miu2=mean2(M2);
T=(miu1+miu2)*2;
an=an+1;
end
for ii=1:r
for jj=1:c
if M(ii,jj)<T
M(ii,jj)=0;
else
M(ii,jj)=1;
end
end
end

figure, imshow(M), title(‘Program Sendiri Untuk sobel Filtering’);

Baca Juga :  Cara Melakukan Pengolahan Citra Dasar Pada Matlab | 2

Hasil tampilan source code diatas ;

Semoga dengan membaca postingan saya ini dan 2 postingan diatas anda bisa lebih memahami konsep konsep dasar mempelajari matlab. Untuk itu mungkin sampai sini saja postingan kali ini dan terima kasih telah membaca postinga saya.Sekian dan terima kasih. Salam Dutormasi !

DUTORMASI


Dutormasi menyediakan jasa web development, app development, web design, jasa desain, dan menjual produk yang berguna untuk bisnis online anda. Kami memiliki tim profesional pada bidangnya masing-masing untuk membantu mengembangkan bisnis Anda di dunia digital. Silakan hubungi kami atau klik DISINI untuk mendapatkan informasi lebih lanjut.