Bagaimana Anda mengubah ukuran fungsi dengan python?

Mengubah 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

  1. Pertahankan Rasio Aspek dan tambah atau kurangi lebar dan tinggi gambar. Sekedar memperjelas, Rasio Aspek adalah rasio lebar gambar dengan tinggi gambar
  2. Skala gambar hanya sepanjang sumbu X atau sumbu Horizontal. Artinya, ubah lebar, jaga agar tinggi tetap sama dengan gambar asli
  3. 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

Masukan Gambar

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?

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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

cv2. resize() mempertahankan rasio aspek

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. resize() sepanjang sumbu lebar atau horizontal

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

cv2. resize() sepanjang ketinggian atau sumbu vertikal

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

Bagaimana Anda menggunakan fungsi resize di Python?

Untuk mengubah ukuran gambar, Anda memanggil metode resize() padanya, meneruskan argumen tuple dua bilangan bulat yang mewakili lebar dan tinggi gambar yang diubah ukurannya. The function doesn't modify the used image; it instead returns another Image with the new dimensions.

Bagaimana cara mengubah ukuran menggunakan NumPy?

Dengan bantuan Numpy numpy. resize() , kita dapat mengubah ukuran array. Array dapat berbentuk apa saja tetapi untuk mengubah ukurannya kita hanya membutuhkan ukuran i. e (2, 2), (2, 3) dan banyak lagi. Selama mengubah ukuran numpy tambahkan nol jika nilai di tempat tertentu tidak ada.

Apa perbedaan antara mengubah ukuran dan membentuk kembali dengan Python?

membentuk kembali() dan numpy. metode resize() digunakan untuk mengubah ukuran array NumPy. Perbedaan di antara keduanya adalah bahwa reshape() tidak mengubah larik asli tetapi hanya mengembalikan larik yang diubah, sedangkan metode resize() tidak mengembalikan apa pun dan langsung mengubah larik asli.

Apa yang membentuk kembali dengan Python?

Membentuk ulang berarti mengubah bentuk array . Bentuk array adalah jumlah elemen di setiap dimensi. Dengan membentuk kembali kita dapat menambah atau menghapus dimensi atau mengubah jumlah elemen di setiap dimensi.

Postingan terbaru

LIHAT SEMUA