Source Code Garis Pentagon:

import cv2

import numpy as np

# Path gambar

image_path = 'images/300px-Pentagon.png'

# Baca gambar

image = cv2.imread(image_path)

# Periksa apakah gambar berhasil dimuat

if image is None:

    print(f"Error: Unable to load image from {image_path}")

else:

    # Lanjutkan dengan proses deteksi garis

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    edges = cv2.Canny(gray, 50, 150, apertureSize=3)

    lines = cv2.HoughLines(edges, 1, np.pi / 180, threshold=100)

    for line in lines:

        rho, theta = line[0]

        a = np.cos(theta)

        b = np.sin(theta)

        x0 = a * rho

        y0 = b * rho

        x1 = int(x0 + 1000 * (-b))

        y1 = int(y0 + 1000 * (a))

        x2 = int(x0 - 1000 * (-b))

        y2 = int(y0 - 1000 * (a))

        cv2.line(image, (x1, y1), (x2, y2), (0, 0, 255), 2)

    cv2.imshow('Deteksi Garis', image)

    cv2.waitKey(0)

    cv2.destroyAllWindows()

   # Hasil:


Source Code Garis hough-circle: 

import cv2
import numpy as np

# Baca gambar
img = cv2.imread('images/hough-circle.jpg', cv2.IMREAD_COLOR)

# Konversi gambar ke citra grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# Reduksi noise dengan GaussianBlur
blur = cv2.GaussianBlur(gray, (5, 5), 0)

# Deteksi tepi menggunakan Canny
edges = cv2.Canny(blur, 50, 150)

# Hough Transform untuk mendeteksi garis
lines = cv2.HoughLines(edges, 1, np.pi / 180, 100)

# Hough Circle Transform untuk mendeteksi lingkaran
circles = cv2.HoughCircles(edges, cv2.HOUGH_GRADIENT, dp=1, minDist=50, param1=100, param2=30, minRadius=10, maxRadius=100)

# Jika garis ditemukan, gambar garis tersebut
if lines is not None:
    for line in lines:
        rho, theta = line[0]
        a = np.cos(theta)
        b = np.sin(theta)
        x0 = a * rho
        y0 = b * rho
        x1 = int(x0 + 1000 * (-b))
        y1 = int(y0 + 1000 * (a))
        x2 = int(x0 - 1000 * (-b))
        y2 = int(y0 - 1000 * (a))
        cv2.line(img, (x1, y1), (x2, y2), (0, 0, 255), 2)

# Jika lingkaran ditemukan, gambar lingkaran tersebut
if circles is not None:
    circles = np.uint16(np.around(circles))
    for i in circles[0, :]:
        cv2.circle(img, (i[0], i[1]), i[2], (0, 255, 0), 2)
        cv2.circle(img, (i[0], i[1]), 2, (0, 0, 255), 3)

# Tampilkan gambar asli dan hasil deteksi garis dan lingkaran
cv2.imshow('Original Image', img)
cv2.imshow('Hough Lines and Circles', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

Source Code Garis hough-elips: 
import cv2
import numpy as np
from matplotlib import pyplot as plt

def detect_ellipses(image_path):
    # Baca gambar
    img = cv2.imread(image_path)

    if img is None:
        print("Error: Could not read the image.")
        return
    
    # Konversi gambar ke citra grayscale
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    # Reduksi noise dengan GaussianBlur
    blur = cv2.GaussianBlur(gray, (5, 5), 0)

    # Deteksi tepi menggunakan Canny
    edges = cv2.Canny(blur, 50, 150)

    # Temukan kontur pada gambar
    contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

    # Iterasi melalui setiap kontur
    for contour in contours:
        # Fit ellipse pada setiap kontur
        if len(contour) >= 5:
            ellipse = cv2.fitEllipse(contour)
            cv2.ellipse(img, ellipse, (0, 255, 0), 2)

    # Menampilkan gambar asli dan hasil deteksi
    plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    plt.title('Original Image with Hough hough-elips')
    plt.show()

    plt.imshow(edges, cmap='gray')
    plt.title('Edge Detection Result')
    plt.show()

    # Tunggu input dari pengguna sebelum menutup jendela
    cv2.waitKey(0)
    cv2.destroyAllWindows()

# Ganti 'path/to/your/image.jpg' dengan jalur file yang benar ke gambar yang ingin Anda gunakan
image_path = 'images/hough-elips.jpg'
detect_ellipses(image_path)

Source Code Garis hough-kotak: 

import cv2
import numpy as np

# Baca gambar
image = cv2.imread('images/hough-kotak.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Deteksi tepi dengan Canny
edges = cv2.Canny(gray, 50, 150, apertureSize=3)

# Transformasi Hough untuk mendeteksi garis (kotak)
lines = cv2.HoughLinesP(edges, 1, np.pi / 180, threshold=100, minLineLength=100, maxLineGap=10)

# Gambar garis (kotak) yang terdeteksi ke dalam gambar asli
for line in lines:
    x1, y1, x2, y2 = line[0]
    cv2.line(image, (x1, y1), (x2, y2), (0, 255, 0), 2)

# Tampilkan gambar asli dan gambar hasil deteksi kotak
cv2.imshow('Original Image', image)
cv2.imshow('Hough Boxes', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()


Source Code Coin : 
import cv2
import numpy as np

# Baca gambar
img = cv2.imread('images/coin1.png')

# Konversi gambar ke citra grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# Reduksi noise dengan GaussianBlur
blur = cv2.GaussianBlur(gray, (5, 5), 0)

# Deteksi tepi menggunakan Canny
edges = cv2.Canny(blur, 50, 150)

# Hough Transform untuk mendeteksi lingkaran
circles = cv2.HoughCircles(edges, cv2.HOUGH_GRADIENT, dp=1, minDist=50, param1=100, param2=30, minRadius=10, maxRadius=100)

# Jika lingkaran ditemukan, gambar lingkaran tersebut
if circles is not None:
    circles = np.uint16(np.around(circles))
    for i in circles[0, :]:
        # Gambar lingkaran dan pusatnya
        cv2.circle(img, (i[0], i[1]), i[2], (0, 255, 0), 2)
        cv2.circle(img, (i[0], i[1]), 2, (0, 0, 255), 3)

# Tampilkan gambar asli dan hasil deteksi lingkaran
cv2.imshow('Original Image', img)
cv2.imshow('Hough Circles', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

# Hasil :