Page 2 - 220533600710_Rivan Adi Kurniawan_Praktikum 2.ipynb - Colab_Neat
P. 2

Percobaan 2


             import cv2
             import numpy as np
             import matplotlib.pyplot as plt

             # 1. Baca gambar (grayscale)
             img = cv2.imread("/content/content/grayscaleimage.jpeg", 0) # pastikan file gambar ada di folder kerja
             f = np.fft.fft2(img)
             plt.subplot(231), plt.imshow(img, cmap='gray'), plt.title("Gambar Asli")

             # 2. Hitung Fourier Transform (FFT/DFT)
             fshift = np.fft.fftshift(f) # shift ke tengah
             magnitude_spectrum = 20*np.log(np.abs(fshift))

             plt.subplot(232), plt.imshow(magnitude_spectrum, cmap='gray'), plt.title("Spektrum Fourier")

             # 3. Low Pass Filter (LPF)
             rows, cols = img.shape
             crow, ccol = rows//2, cols//2
             mask = np.zeros((rows, cols), np.uint8)
             r = 50 # radius LPF
             mask[crow-r:crow+r, ccol-r:ccol+r] = 1

             fshift_low = fshift * mask
             img_back_low = np.fft.ifft2(np.fft.ifftshift(fshift_low))
             img_back_low = np.abs(img_back_low)
             plt.subplot(233), plt.imshow(img_back_low, cmap='gray'), plt.title("Low Pass Filtered")

             # 4. High Pass Filter (HPF)
             mask_high = np.ones((rows, cols), np.uint8)
             mask_high[crow-r:crow+r, ccol-r:ccol+r] = 0
             fshift_high = fshift * mask_high
             img_back_high = np.fft.ifft2(np.fft.ifftshift(fshift_high))
             img_back_high = np.abs(img_back_high)

             plt.subplot(234), plt.imshow(img_back_high, cmap='gray'), plt.title("High Pass Filtered")
             # 5. Bandingkan dengan inverse langsung (rekonstruksi citra)
             img_back = np.fft.ifft2(np.fft.ifftshift(fshift))
             img_back = np.abs(img_back)

             plt.subplot(235), plt.imshow(img_back, cmap='gray'), plt.title("Inverse FFT (Rekonstruksi)")
             plt.tight_layout()
             plt.show()
   1   2   3   4   5   6   7