Page 6 - 220533600710_Rivan Adi Kurniawan_Praktikum 2.ipynb - Colab_Neat
P. 6
# Load gambar
image = cv2.imread(cv2.samples.findFile('/content/content/Lenna_(test_image).png'))
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# Simpan dengan format berbeda
# - - -
cv2.imwrite("compressed_lossy.jpg", image, [int(cv2.IMWRITE_JPEG_QUALITY), 30]) # JPEG kualitas rendah
cv2.imwrite("compressed_lossless.png", image, [int(cv2.IMWRITE_PNG_COMPRESSION), 9]) # PNG kompresi tinggi
# Baca kembali hasil kompresi
jpeg_image = cv2.imread("compressed_lossy.jpg")
png_image = cv2.imread("compressed_lossless.png")
jpeg_rgb = cv2.cvtColor(jpeg_image, cv2.COLOR_BGR2RGB)
png_rgb = cv2.cvtColor(png_image, cv2.COLOR_BGR2RGB)
# Bandingkan ukuran file
# - - -
size_jpeg = os.path.getsize("compressed_lossy.jpg") / 1024
size_png = os.path.getsize("compressed_lossless.png") / 1024
# Visualisasi
# - - -
plt.figure(figsize=(15,5))
plt.subplot(1,3,1)
plt.title("Original")
plt.imshow(image_rgb)
plt.axis("off")
plt.subplot(1,3,2)
plt.title(f"JPEG (Lossy) ~ {size_jpeg:.1f} KB")
plt.imshow(jpeg_rgb)
plt.axis("off")
plt.subplot(1,3,3)
plt.title(f"PNG (Lossless) ~ {size_png:.1f} KB")
plt.imshow(png_rgb)
plt.axis("off")
plt.show()
Rekontruksi
Percobaan 8
import numpy as np
import matplotlib.pyplot as plt
from skimage.data import shepp_logan_phantom
from skimage.transform import radon, iradon
# 1. Membuat citra phantom (simulasi CT-Scan otak)
image = shepp_logan_phantom()
# 2. Lakukan Radon Transform (simulasi proyeksi sinar-X dari berbagai sudut)
theta = np.linspace(0., 180., max(image.shape), endpoint=False)
sinogram = radon(image, theta=theta)

