PENDAHULUAN

Gambar memainkan peran penting dalam berbagai bidang, termasuk visi komputer, grafik, dan fotografi. Seringkali, manipulasi dan transformasi gambar diperlukan untuk menyempurnakan tampilan visualnya, mengekstrak informasi berguna, atau mempersiapkannya untuk analisis lebih lanjut. Di blog ini, kita akan menjelajahi beberapa teknik transformasi gambar yang populer dan memberikan cuplikan kode untuk setiap teknik menggunakan Python dan OpenCV, pustaka visi komputer yang banyak digunakan.

Gambar:

1. Rotasi Gambar

Rotasi gambar melibatkan memutar gambar dengan sudut tertentu. Teknik ini biasanya digunakan untuk mengoreksi orientasi gambar, menyelaraskan objek, atau membuat efek visual yang menarik.

Mari kita lihat cara melakukan rotasi gambar menggunakan OpenCV:

import cv2
image = cv2.imread(r"D:\cDrive_user\Downloads\pexels-cats-coming-1444321.jpg")
num_rows, num_cols = image.shape[:2]
img_rotation = cv2.warpAffine(image, cv2.getRotationMatrix2D((num_cols/2, num_rows/2), 90, 0.6), (num_cols, num_rows))
matrix = cv2.getRotationMatrix2D((num_cols/2, num_rows/2), 30, 0.7)
cv2_imshow(img_rotation)

Keluaran:

Cuplikan kode yang diberikan di atas menunjukkan cara memutar gambar menggunakan OpenCV. Ini memuat file gambar, menghitung jumlah baris dan kolom dalam gambar, dan membuat matriks rotasi berdasarkan sudut dan faktor skala tertentu. Matriks rotasi kemudian diterapkan ke gambar menggunakan fungsi cv2.warpAffine, sehingga menghasilkan gambar yang diputar. Langkah terakhir menampilkan gambar yang diputar.

2. Penskalaan Gambar

Penskalaan gambar melibatkan pengubahan ukuran gambar ke ukuran yang diinginkan. Teknik ini berguna untuk standarisasi dimensi gambar, mengurangi konsumsi memori, atau menyiapkan gambar untuk aplikasi tertentu.

Ini adalah metode yang umum digunakan di bidang computer vision dan pemrosesan gambar di mana kami mencoba mengubah ukuran gambar sesuai kebutuhan. Secara kasar kita melakukan dua hal dalam penskalaan gambar: kita memperbesar atau memperkecil gambar; di OpenCV, kami memiliki fungsi pengubahan ukuran; dengan menggunakan ini, kita dapat melakukan penskalaan gambar.

Berikut cara melakukan penskalaan gambar menggunakan OpenCV:

Gambar Menyusut:

img_shrinked = cv2.resize(image,(350, 300), interpolation = cv2.INTER_AREA)
cv2_imshow(img_shrinked)

Keluaran:

Gambar yang Diperbesar:

img_enlarged = cv2.resize(img_shrinked,None,fx=1.5, fy=1.5, interpolation = cv2.INTER_CUBIC)
cv2_imshow(img_enlarged)

Keluaran:

3. Terjemahan Gambar

Terjemahan gambar melibatkan pergeseran piksel gambar ke arah horizontal dan vertikal. Teknik ini berguna untuk memperbaiki masalah keselarasan, membuat mosaik gambar, atau mensimulasikan pergerakan kamera.

Mari kita lihat cara melakukan terjemahan gambar menggunakan OpenCV:

num_rows, num_cols = image.shape[:2]
translation_matrix = np.float32([ [1,0,70], [0,1,110] ])
img_translation = cv2.warpAffine(image, translation_matrix, (num_cols, num_rows), cv2.INTER_LINEAR)
translation_matrix
cv2_imshow(img_translation)

Keluaran:

RGB KE BGR :

rgb = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
cv2_imshow(rgb)

Keluaran:

RGB KE SKALA ABU-ABU

gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
cv2_imshow(gray)
print(gray.shape)

Kesimpulan:

Sebagai kesimpulan, blog ini mengeksplorasi beberapa teknik transformasi gambar yang penting dan menyediakan cuplikan kode untuk setiap teknik menggunakan Python dan OpenCV. Berikut ringkasan singkat dari teknik yang dibahas:

  1. Rotasi Gambar: Kode menunjukkan cara memutar gambar dengan sudut tertentu menggunakan fungsi cv2.getRotationMatrix2D dan cv2.warpAffine.
  2. Penskalaan Gambar: Kode ini menunjukkan cara mengubah ukuran gambar ke ukuran yang diinginkan menggunakan fungsi cv2.resize, memungkinkan peningkatan atau penurunan skala berdasarkan persentase skala tertentu.
  3. Terjemahan Gambar: Kode ini mengilustrasikan cara menggeser piksel gambar secara horizontal dan vertikal menggunakan fungsi cv2.warpAffine dan matriks terjemahan.

Dengan memahami dan menerapkan teknik transformasi gambar ini, Anda dapat memanipulasi dan memodifikasi gambar agar sesuai dengan kebutuhan spesifik Anda. Baik Anda mengoreksi orientasi gambar, menstandardisasi dimensi, atau mensimulasikan pergerakan kamera, teknik ini memberikan dasar yang kuat untuk bekerja dengan gambar dalam visi komputer, grafik, dan bidang terkait.

Ingatlah untuk bereksperimen dengan parameter yang berbeda, jelajahi fungsionalitas tambahan yang ditawarkan oleh perpustakaan seperti OpenCV, dan sesuaikan teknik ini dengan proyek Anda. Dengan latihan dan kreativitas, Anda dapat memanfaatkan transformasi gambar untuk membuka kemungkinan baru dan meningkatkan alur kerja pemrosesan gambar Anda.