B. Penggeseran citra
Penggeseran citra ke arah mendatar atau vertikal dapat
dilakukan dengan persamaan:
88
Citra Kucing asli Hasil Penggeseran
C. Pemutaran citra
Suatu citra dapat diputar dengan sudut 𝜃 seiring arah
jarum jam atau berlawanan arah jarum jam dengan pusat
putaran pada koordinat (0,0)
Operasi memutar citra dapat dilakukan dengan fungsi
cosinus-sinus, sebagai berikut:
89
D. Interpolasi piksel
Hasil pemutaran citra dapat menimbulkan efek
bergerigi pada objek citra yang disebabkan oleh operasi
pembulatan (round atau floor).
90
tinggi_baru = tinggi * sy;
lebar_baru = lebar * sx;
y2 = ((y-1) / sy) + 1;
x2 = ((x-1) / sx) + 1;
91
F. Transformasi affine
Transformasi affine adalah transformasi linear yang
menyertakan penskalaan, pemutaran, penggeseran, dan
shearing (pembengkokan).
H. Transformasi twirl
Transformasi twirl (olak atau puntiran) dilakukan
dengan memutar citra berdasarkan titik pusat citra, tetapi
tidak bersifat linear. Salah satu varian bentuk
transformasinya, yang diadaptasi dari Burger & Burge (2008),
sebagai berikut:
92
I. Pengolahan Citra di Kawasan Frekuensi
1. Transformasi Fourier
Transformasi Citra: Spasial vs Frekuensi
93
Contoh Perhitungan:
Fourier 2-D
94
Latihan:
1. Transformasi Twirl
import matplotlib.pyplot as plt
image = data.checkerboard()
swirled = swirl(image, rotation=0, strength=10,
radius=120)
ax0.imshow(image, cmap=plt.cm.gray)
ax0.axis('off')
ax1.imshow(swirled, cmap=plt.cm.gray)
ax1.axis('off')
plt.show()
2. Translation
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
image = cv.imread("kucing.jpg")
h, w = image.shape[:2]
img_transition = cv.warpAffine(image,
transition_matrix, (w, h))
plt.imshow(cv.cvtColor(img_transition,
cv.COLOR_BGR2RGB))
plt.title("Translation")
plt.show()
95
[out]
3. Rotation
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
image = cv.imread("kucing.jpg")
h, w = image.shape[:2]
rotation_matrix =
[in]
cv.getRotationMatrix2D((w/2,h/2), -180, 0.5)
rotated_image = cv.warpAffine(image,
rotation_matrix, (w, h))
plt.imshow(cv.cvtColor(rotated_image,
cv.COLOR_BGR2RGB))
plt.title("Rotation")
plt.show()
[out]
96
4. Interpolation
import mahotas as mh
import numpy as np
from pylab import imshow, show
imshow(labeled, interpolation='nearest')
show()
[out]
labeled,nr_objects = mh.label(regions,
[in]
np.ones((3,3), bool))
sizes = mh.labeled.labeled_size(labeled)
print('Background size', sizes[0])
[in]
print('Size of first region:
{}'.format(sizes[1]))
Background size 51
[out] Size of first region: 9
array = np.random.random_sample(regions.shape)
sums = mh.labeled_sum(array, labeled)
[in]
print('Sum of first region:
{}'.format(sums[1]))
Sum of first region: 5.760848502091579
[out]
97
5. Skala Interpolasi Miring
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
image = cv.imread("kucing.jpg")
[out]
98
Soal:
Pilih salah satu jawaban yang benar dengan memberi tanda
pada lembar jawaban.
1. Suatu citra dapat diputar dengan sudut 𝜃 seiring arah
jarum jam atau berlawanan arah jarum jam dengan pusat
putaran pada koordinat (0,0).
Kode manakah yang sesuai untuk pernyataan diatas?
a. cv.warpAffine
b. cv.getRotationMatrix2D
c. cv.INTER_AREA
d. cv.cvtColor
e. cv.imread
99
5. Transformasi linear yang menyertakan penskalaan,
pemutaran, penggeseran, dan pembengkokan, merupakan
bagian dari…
a. Transisi matriks
b. Transformasi affine
c. Pemutaran citra
d. Teknik Pergeseran citra
e. Interpolasi piksel
100