소스 뷰어
import cv2, numpy as np, matplotlib.pyplot as plt

# 이미지 불러오기 (흑백 이미지로 변환)
image = cv2.imread('example.jpg', cv2.IMREAD_GRAYSCALE)

# 커널 크기 설정 (6개)
kernel_sizes = [3, 5, 7, 9, 11, 13]

# 폰트 사이즈
fs = 12

# 결과 출력
plt.figure(figsize=(18, 12))  # 화면 크기 조정

# 각 커널 크기별로 이미지를 출력
for idx in range(0, len(kernel_sizes), 2):  # 두 개씩 묶어서 출력
    # 첫 번째 커널 크기
    ks1 = kernel_sizes[idx]
    blurred_image1 = cv2.GaussianBlur(image, (ks1, ks1), 0)
    log1 = cv2.Laplacian(blurred_image1, cv2.CV_64F)
    log_abs1 = np.abs(log1).astype(np.uint8)

    # 두 번째 커널 크기
    ks2 = kernel_sizes[idx + 1]
    blurred_image2 = cv2.GaussianBlur(image, (ks2, ks2), 0)
    log2 = cv2.Laplacian(blurred_image2, cv2.CV_64F)
    log_abs2 = np.abs(log2).astype(np.uint8)

    # 첫 번째 커널 크기 블러 이미지 출력
    plt.subplot(len(kernel_sizes)//2, 4, 4 * (idx//2) + 1)
    plt.title(f"Blurred Image (Kernel {ks1}x{ks1})", fontsize=fs)
    plt.imshow(blurred_image1, cmap='gray')
    plt.axis('off')

    # 첫 번째 커널 크기 LoG 이미지 출력
    plt.subplot(len(kernel_sizes)//2, 4, 4 * (idx//2) + 2)
    plt.title(f"LoG (Kernel {ks1}x{ks1})", fontsize=fs)
    plt.imshow(log_abs1, cmap='gray')
    plt.axis('off')

    # 두 번째 커널 크기 블러 이미지 출력
    plt.subplot(len(kernel_sizes)//2, 4, 4 * (idx//2) + 3)
    plt.title(f"Blurred Image (Kernel {ks2}x{ks2})", fontsize=fs)
    plt.imshow(blurred_image2, cmap='gray')
    plt.axis('off')

    # 두 번째 커널 크기 LoG 이미지 출력
    plt.subplot(len(kernel_sizes)//2, 4, 4 * (idx//2) + 4)
    plt.title(f"LoG (Kernel {ks2}x{ks2})", fontsize=fs)
    plt.imshow(log_abs2, cmap='gray')
    plt.axis('off')
pass

plt.tight_layout()
plt.show()
No description has been provided for this image