Cara Meningkatkan Kualitas Gambar Menggunakan Python
Peningkatan citra adalah cara penting dalam beberapa program, termasuk misi computer dan pemrosesan citra. Ini akan membantu Anda meningkatkan kualitas gambar dengan menyesuaikan kecerahan, kontras, dan ketajamannya. Python, bahasa pemrograman serbaguna, yang menyediakan beberapa library untuk melakukan tugas peningkatan gambar. Pada artikel ini, kita akan mengimplementasikannya menggunakan library seperti OpenCV dan Pillow.
1 — Memulai
Maka sebelum kita mulai mengimplementasikan code, pastikan Python sudah terinstal di sistem Anda. Anda bisa mengunduh versi terbaru Python dari website resmi: https://www.python.org/downloads/
Selanjutnya, instal library yang diperlukan menggunakan pip:
pip install opencv-python
pip install pillow
2 — Meningkatkan Gambar dengan OpenCV
OpenCV ialah library yang kuat untuk misi computer dan pemrosesan gambar. Ini menyediakan berbagai fungsi untuk memanipulasi dan meningkatkan gambar. Mari terapkan beberapa fungsi ini untuk meningkatkan kualitas gambar.
A. Menyesuaikan Kecerahan dan Kontras
Untuk mengatur kecerahan dan kontras gambar, kita bisa menggunakan fungsi cv2.addWeighted(). Fungsi ini mengambil parameter di bawah ini:
- src1: Gambar sumber pertama.
- alpha: Berat gambar sumber pertama.
- src2: Gambar sumber kedua.
- beta: Berat gambar sumber kedua.
- gamma: Sebuah skalar ditambahkan ke setiap jumlah
Mari kita lihat contoh langkah menggunakan fungsi ini:
import cv2
import numpy as np
import matplotlib.pyplot as plt
def adjust_brightness_contrast(image, alpha, beta):
return cv2.addWeighted(image, alpha, image, 0, beta)
image = cv2.imread('dog.jpg')
enhanced_image = adjust_brightness_contrast(image, 1.2, 30)
original_and_enhanced_image = np.hstack((image, enhanced_image))
plt.figure(figsize = [30, 30])
plt.axis('off')
plt.imshow(original_and_enhanced_image [:,:,::-1])
Setelah menyelesaikan code di atas, Anda akan mendapatkan output berikut ini:
B. Mempertajam Gambar
Bila kita ingin mempertajam gambar, kita bisa menggunakan fungsi cv2.filter2D(), yang menerapkan filter linier pada gambar. Kami akan menggunakan kernel penajaman untuk menyempurnakan detail gambar.
import cv2
import numpy as np
import matplotlib.pyplot as plt
def sharpen_image(image):
kernel = np.array([[-1, -1, -1],
[-1, 9, -1],
[-1, -1, -1]])
return cv2.filter2D(image, -1, kernel)
image = cv2.imread('dog.jpg')
sharpened_image = sharpen_image(image)
original_and_sharpened_image = np.hstack((image, sharpened_image))
plt.figure(figsize = [30, 30])
plt.axis('off')
plt.imshow(original_and_sharpened_image[:,:,::-1])
3 — Meningkatkan Gambar dengan Pillow
Pillow (Python Imaging Library) ialah library terkenal lainnya untuk pemrosesan gambar dengan Python. Ini menyediakan antarmuka yang ramah pengguna untuk bekerja dengan gambar dan menawarkan berbagai fungsi untuk memperbaikinya.
A. Menyesuaikan Kecerahan
Bila kita ingin mengatur kecerahan gambar kita, kita dapat menggunakan kelas ImageEnhance.Brightness dari modul PIL.ImageEnhance. Class ini mengambil gambar sebagai input dan menyediakan sistem enhance() untuk menyesuaikan kecerahan.
from PIL import Image, ImageEnhance
import numpy as np
import matplotlib.pyplot as plt
def adjust_brightness(image, factor):
enhancer = ImageEnhance.Brightness(image)
return enhancer.enhance(factor)
image = Image.open('dog.jpg')
enhanced_image = adjust_brightness(image, 1.5)
original_and_enhanced_image = np.hstack((image, enhanced_image))
plt.figure(figsize = [30, 30])
plt.axis('off')
plt.imshow(original_and_enhanced_image, cmap = 'gray')
B. Menyesuaikan Kontras
Untuk mengatur kontras suatu gambar, kita bisa menggunakan kelas ImageEnhance.Contrast dari modul PIL.ImageEnhance. Kelas ini mengambil gambar sebagai input dan menyediakan sistem enhance() untuk menyesuaikan kontras.
from PIL import Image, ImageEnhance
import numpy as np
import matplotlib.pyplot as plt
def adjust_contrast(image, factor):
enhancer = ImageEnhance.Contrast(image)
return enhancer.enhance(factor)
image = Image.open('dog.jpg')
enhanced_contrast = adjust_contrast(image, 1.5)
original_and_enhanced_contrast = np.hstack((image, enhanced_contrast))
plt.figure(figsize = [30, 30])
plt.axis('off')
plt.imshow(original_and_enhanced_contrast, cmap = 'gray')
Kesimpulan
Pada artikel ini, kita membahas langkah memperbaiki gambar menggunakan Python dengan bantuan library OpenCV dan Pillow. Kami membahas berbagai teknik, termasuk menyesuaikan kecerahan, kontras, dan mempertajam gambar. Library ini menawarkan berbagai fungsi untuk memanipulasi dan memperbaiki gambar, menjadikan Python bahasa yang kuat untuk tugas pemrosesan gambar.