Anda di halaman 1dari 4

Modul 4

Hough Transform

Hough Transform pertama kali diperkenalkan oleh Paul Hough pada tahun 1962 untuk
mendeteksi garis lurus. Hough Transform adalah teknik transformasi citra yang dapat digunakan
untuk mengisolasi atau dengan kata lain memperoleh fitur dari sebuah citra. Karena tujuan dari
sebuah transformasi adalah mendapatkan suatu fitur yang lebih spesifik, Classical Hough
Transform merupakan teknik yang paling umum digunakan untuk mendeteksi objek yang
berbentuk kurva seperti garis, lingkaran, elips dan parabola. Keuntungan utama dari transformasi
Hough adalah dapat mendeteksi sebuah tepian dengan celah pada batas fitur dan secara relatif tidak
dipengaruhi oleh derau atau noise.

1. Fungsi Garis

Transformasi Hough memiliki beberapa perbedaan rumus yang diterapkan. Semuanya tergantung
pada jenis objek yang dicari, misalnya untuk mencari objek garis akan digunakan fungsi garis
seperti berikut ini:

𝑥 cos(𝜃) + 𝑦 sin(𝜃) = 𝑟

Dengan x dan y merupakan titik koordinat yang menyusun objek garis tersebut, sedangkan teta
adalah sudut yang dibentuk antara objek garis dengan sumbu x, dan r merupakan jarak antara garis
dengan titik pusat (0,0). Untuk lebih jelasnya dapat diilustrasikan dengan menggunakan gambar
berikut.
2. Fungsi Lingkaran

Jika objek yang dicari berupa lingkaran, maka digunakan transformasi lingkaran Hough. Prosedur
yang digunakan dalam mendeteksi lingkaran adalah sama dengan transformasi Hough pada objek
garis, tapi dikerjakan pada ruang dimensi yang lebih kompleks, yaitu dalam parameter ruang 3D
(Xo,Yo,R). Di mana Xo dan Yo merupakan koordinat pusat lingkaran dan r adalah jari-jari
lingkaran seperti persamaan berikut:

(𝑥 − 𝑥0 )2 + (𝑦 − 𝑦0 )2 = 𝑟 2

3. Vektor

Sedangkan untuk vektor parameternya adalah

𝑥0
𝑝⃗ = [𝑦0 ]
𝑟

dan jika diilustrasikan dalam koordinat (Xo,Yo,R) adalah sebagai berikut:

Dalam proses transformasi lingkaran Hough, meliputi tiga bagian dasar. Bagian yang pertama
adalah deteksi tepi. Tujuan deteksi tepi adalah untuk menurunkan jumlah titik dalam pencarian
ruang bagi objek. Ketika titik tepi ditemukan oleh detektor tepi, algoritma transformasi Hough
dikerjakan hanya pada titik tersebut. Untuk deteksi tepi, digunakan detektor tepi Canny, Roberts
Cross, atau Sobel yang tujuannya memaksimalkan sinyal pada rasio derau dan lokalisasi serta
meminimalisasi kesalahan pada deteksi tepi.

4. Tugas
A. Gunakan transformasi hough untuk mendeteksi garis lurus pada citra circuit.tif
%Read image into workspace.
I = imread('circuit.tif');
%Create a binary image.
BW = edge(I,'canny');
%Create the Hough transform using the binary image.
[H,T,R] = hough(BW);
imshow(H,[],'XData',T,'YData',R,...
'InitialMagnification','fit');
xlabel('\theta'), ylabel('\rho');
axis on, axis normal, hold on;
%Find peaks in the Hough transform of the image.
P = houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));
x = T(P(:,2)); y = R(P(:,1));
plot(x,y,'s','color','white');

% Find lines and plot them


lines = houghlines(BW,T,R,P,'FillGap',5,'MinLength',7);
figure, imshow(rotI), hold on
max_len = 0;
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');

% Plot beginnings and ends of lines

plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');

% Determine the endpoints of the longest line segment


len = norm(lines(k).point1 - lines(k).point2);
if ( len > max_len)
max_len = len;
xy_long = xy;
end
end

Berikan analisis terhadap hasil yang diperoleh?


Gunakan deteksi tepi dengan filter jenis lain, kemudian lakukan deteksi garis lurus dengan
menggunakan transformasi hough?Berikan analisis anda.
B. Gunakan transformasi hough untuk mendeteksi lingkaran pada citra coins.png

img = imread('coins.png');
imshow(img);
imgBW = edge(img);
rad = 24;
[y0detect,x0detect,Accumulator] = houghcircle(imgBW,rad,rad*pi);
figure, imshow(imgBW);
hold on;
plot(x0detect(:),y0detect(:),'x','LineWidth',2,'Color','yellow');
figure, imagesc(Accumulator);

Ubah nilai variable rad menjadi 25 hingga 32. Berikan analisis anda?

C. Buat algoritma dari percobaan yang sudah dilakukan (A) dan (B)