Dont forget to support me on trakteer
Translation
Pergeseran atau translasi adalah proses pemindahan setiap piksel pada citra ke arah vertical dan horizontal sesuai dengan jarak atau nilai perpindahan yang telah ditentukan.
Note: Penjelasan lebih lengkap silahkan lihat PPT dan video
#mengimport library
import cv2
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
from google.colab.patches import cv2_imshow
import math
#mengambil data dari google drive
from google.colab import drive
drive.mount('/content/gdrive')
#Inisialisasi direktori tempat data disimpan
#Ini disesuaikan dengan drive tempat menyimpan
path = "/content/gdrive/MyDrive/citra/"
# Cek isi direktori
import os
os.listdir(path)
Note : silahkan ganti yang bewarna kuning dengan folder tempat menyimpan citra
#membaca gambar dari google drive
img = cv2.imread(path + 'calon_jodoh.jpeg')
cv2_imshow(img)
#membaca gambar dari web
#img = plt.imread('https://blogger.googleusercontent.com/img/a/AVvXsEiYYX3agFO61SCNNAHLQkfV2JmI3cJOahLCETF4eI_V0oH010V2itRX8AOCuNTb3T5PfHTuHMyYIsr8m1uj-BoD-uuRXs51fO6f1Km2aoIr7vKl3o_IzpBhrckT17hAYYWLoxqO4h9jhHmPZUUoqTSAkR47LS8banwgxX1vTWAQ-9Y-5ukXqYvZlYI2GA=s400')
#plt.imshow(img)
Note: Silahkan ganti warna kuning dengan nama file
hasil menampilkan img
#melihat ukuran image
img.shape
#Menggunakan library
#translasi [pergeseran] separuh ukuran menggunakan library warpAffine
tinggi, lebar = img.shape[:2]
tinggibaru, lebarbaru = tinggi/2, lebar/2
T = np.float32([[1,0,lebarbaru], [0,1,tinggibaru]])
translasi1 = cv2.warpAffine(img, T, (lebar,tinggi))
cv2_imshow(translasi1)
silahkan ganti yg dibackground kuning dengan ukuran pergeseran yang ingin dilakukan
hasil penggeseran
#Membuat pergesran dengan function dan perulangan
def translasi_gambar(gambar,jarak,ukuran):
tinggi,lebar = gambar.shape[:2]
jarak_x = jarak[0]
jarak_y = jarak[1]
rumus = np.array([[1,0,jarak_x],[0,1,jarak_y]])
hasil_gambar = np.zeros(ukuran, dtype='u1')
for i in range(tinggi):
for j in range(lebar):
jarak_asli_x=j
jarak_asli_y=i
jarak_asli_xy=np.array([jarak_asli_x,jarak_asli_y,1])
jarak_baru_xy = np.dot(rumus, jarak_asli_xy)
jarak_baru_x=jarak_baru_xy[0]
jarak_baru_y=jarak_baru_xy[1]
if 0<jarak_baru_x<lebar and 0<jarak_baru_y<tinggi:
hasil_gambar[jarak_baru_y,jarak_baru_x]= gambar[i,j]
return hasil_gambar
Dont forget to support me on trakteer
0 Komentar