Terima kasih telah mengunjungi website kami. Kami menggunakan cookie penting untuk membantu kami memahami dan meningkatkan pengalaman pengguna. Dengan mengklik "Terima", Anda menyetujui penggunaan SEMUA cookie
Terima kebijakan PrivasiMengubah ukuran, secara default, hanya mengubah lebar dan tinggi gambar. Rasio aspek dapat dipertahankan atau tidak, berdasarkan kebutuhan. Rasio Aspek dapat dipertahankan dengan menghitung lebar atau tinggi untuk masing-masing tinggi atau lebar target yang diberikan
Dalam tutorial ini, kita akan belajar cara mengubah ukuran gambar dengan Python menggunakan library OpenCV
Sintaks fungsi cv2 resize()
Berikut adalah sintaks dari cv2. mengubah ukuran() fungsi
cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])di mana
- src adalah sumber, gambar asli atau input dalam bentuk array numpy
- dsize adalah ukuran gambar keluaran yang diinginkan, diberikan sebagai tuple
- fx adalah faktor penskalaan sepanjang sumbu X atau sumbu Horizontal
- fy_ adalah faktor penskalaan sepanjang sumbu Y atau sumbu Vertikal
- interpolation dapat menjadi salah satu dari nilai berikut
- INTER_NEAREST
- INTER_LINEAR
- INTER_AREA
- INTER_CUBIC
- INTER_LANCZOS4
Berdasarkan teknik interpolasi yang dipilih, masing-masing algoritma digunakan. Anda dapat menganggap interpolasi sebagai metode yang memutuskan piksel mana yang mendapatkan nilai mana berdasarkan piksel tetangganya dan skala di mana ukuran gambar sedang diubah
Bagaimana Anda bisa mengubah ukuran gambar?
Anda dapat mengubah ukuran gambar dengan tiga cara
- Pertahankan Rasio Aspek dan tambah atau kurangi lebar dan tinggi gambar. Sekedar memperjelas, Rasio Aspek adalah rasio lebar gambar dengan tinggi gambar
- Skala gambar hanya sepanjang sumbu X atau sumbu Horizontal. Artinya, ubah lebar, jaga agar tinggi tetap sama dengan gambar asli
- Skalakan gambar hanya sepanjang sumbu Y atau sumbu Vertikal. Artinya, ubah ketinggian, pertahankan lebarnya sama dengan gambar asli
Gambar Sumber
Perhatikan gambar berikut. Kami akan menggunakan gambar ini sebagai input atau gambar sumber dalam program contoh kami yang sedang berlangsung
Contoh 1. Ubah Ukuran Gambar – cv2. mengubah ukuran()
Dalam contoh berikut, kita akan melihat bagaimana kita dapat mengubah ukuran gambar di atas menggunakan cv2.resize() sambil mempertahankan rasio aspek. Kami akan mengubah ukuran gambar menjadi 50% dari bentuk aslinya, mis. e. , kami akan mengurangi tingginya menjadi 50% dari aslinya dan lebarnya menjadi 50% dari aslinya
Program Piton
import cv2 src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED) #percent by which the image is resized scale_percent = 50 #calculate the 50 percent of original dimensions width = int(src.shape[1] * scale_percent / 100) height = int(src.shape[0] * scale_percent / 100) # dsize dsize = (width, height) # resize image output = cv2.resize(src, dsize) cv2.imwrite('D:/cv2-resize-image-50.png',output) _Apa yang telah kita lakukan dalam program Python di atas?
- import cv2 src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED) #percent by which the image is resized scale_percent = 50 #calculate the 50 percent of original dimensions width = int(src.shape[1] * scale_percent / 100) height = int(src.shape[0] * scale_percent / 100) # dsize dsize = (width, height) # resize image output = cv2.resize(src, dsize) cv2.imwrite('D:/cv2-resize-image-50.png',output) 0 membaca file yang diberikan di import cv2 src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED) #percent by which the image is resized scale_percent = 50 #calculate the 50 percent of original dimensions width = int(src.shape[1] * scale_percent / 100) height = int(src.shape[0] * scale_percent / 100) # dsize dsize = (width, height) # resize image output = cv2.resize(src, dsize) cv2.imwrite('D:/cv2-resize-image-50.png',output) 1 dengan saluran transparansi (jika ada) dan mengembalikan array numpy dengan nilai piksel
- import cv2 src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED) #percent by which the image is resized scale_percent = 50 #calculate the 50 percent of original dimensions width = int(src.shape[1] * scale_percent / 100) height = int(src.shape[0] * scale_percent / 100) # dsize dsize = (width, height) # resize image output = cv2.resize(src, dsize) cv2.imwrite('D:/cv2-resize-image-50.png',output) _2 diatur ke 50. Kita akan menskalakan gambar hingga 50% dari dimensi aslinya, lebar dan tinggi
- src. shape[1] memberikan lebar gambar sumber. import cv2 src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED) #percent by which the image is resized scale_percent = 50 #calculate the 50 percent of original dimensions width = int(src.shape[1] * scale_percent / 100) height = int(src.shape[0] * scale_percent / 100) # dsize dsize = (width, height) # resize image output = cv2.resize(src, dsize) cv2.imwrite('D:/cv2-resize-image-50.png',output) _3 menghitung 50% dari lebar aslinya. Demikian pula ketinggian juga dihitung
- Kemudian kami menyetel ukuran yang diinginkan dsize dengan import cv2 src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED) #percent by which the image is resized scale_percent = 50 #calculate the 50 percent of original dimensions width = int(src.shape[1] * scale_percent / 100) height = int(src.shape[0] * scale_percent / 100) # dsize dsize = (width, height) # resize image output = cv2.resize(src, dsize) cv2.imwrite('D:/cv2-resize-image-50.png',output) 5 dan import cv2 src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED) #percent by which the image is resized scale_percent = 50 #calculate the 50 percent of original dimensions width = int(src.shape[1] * scale_percent / 100) height = int(src.shape[0] * scale_percent / 100) # dsize dsize = (width, height) # resize image output = cv2.resize(src, dsize) cv2.imwrite('D:/cv2-resize-image-50.png',output) 6 yang baru dihitung
- import cv2 src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED) #percent by which the image is resized scale_percent = 50 #calculate the 50 percent of original dimensions width = int(src.shape[1] * scale_percent / 100) height = int(src.shape[0] * scale_percent / 100) # dsize dsize = (width, height) # resize image output = cv2.resize(src, dsize) cv2.imwrite('D:/cv2-resize-image-50.png',output) _7 mengubah ukuran gambar src ke ukuran dsize dan mengembalikan array numpy
- Menggunakan import cv2 src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED) # set a new width in pixels new_width = 300 # dsize dsize = (new_width, src.shape[0]) # resize image output = cv2.resize(src, dsize, interpolation = cv2.INTER_AREA) cv2.imwrite('D:/cv2-resize-image-width.png',output) _0, kami menulis output dari import cv2 src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED) #percent by which the image is resized scale_percent = 50 #calculate the 50 percent of original dimensions width = int(src.shape[1] * scale_percent / 100) height = int(src.shape[0] * scale_percent / 100) # dsize dsize = (width, height) # resize image output = cv2.resize(src, dsize) cv2.imwrite('D:/cv2-resize-image-50.png',output) 7 ke file gambar lokal
Gambar Keluaran
Contoh 2. cv2 Mengubah Ukuran Gambar Secara Horizontal
Dalam contoh berikut, kami akan menskalakan gambar hanya sepanjang sumbu x atau sumbu Horizontal. Dan kami menjaga ketinggian gambar tidak berubah
Dalam ukuran, kami akan menjaga tingginya sama dengan gambar asli tetapi mengubah lebarnya
Program Piton
import cv2 src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED) # set a new width in pixels new_width = 300 # dsize dsize = (new_width, src.shape[0]) # resize image output = cv2.resize(src, dsize, interpolation = cv2.INTER_AREA) cv2.imwrite('D:/cv2-resize-image-width.png',output) _Gambar Keluaran
cv2 Mengubah Ukuran Gambar Secara Vertikal
Dalam contoh berikut, kami akan menskalakan gambar hanya sepanjang sumbu y atau sumbu Vertikal. Lebar gambar keluaran tetap tidak berubah dari gambar sumber
Dalam ukuran, kami akan menjaga lebarnya sama dengan gambar asli tetapi mengubah tingginya
import cv2 src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED) # set a new height in pixels new_height = 200 # dsize dsize = (src.shape[1], new_height) # resize image output = cv2.resize(src, dsize, interpolation = cv2.INTER_AREA) cv2.imwrite('D:/cv2-resize-image-height.png',output)Gambar Keluaran
Ringkasan
Dalam tutorial Contoh Python ini, kita telah belajar cara menggunakan OpenCV cv2. resize(), untuk mengubah ukuran gambar sepanjang lebar, tinggi atau keduanya dengan mempertahankan rasio aspek atau tidak mempertahankan rasio aspek