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

Bagaimana Anda mengubah ukuran fungsi dengan python?

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

Bagaimana Anda mengubah ukuran fungsi dengan python?
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

Bagaimana Anda mengubah ukuran fungsi dengan python?
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

Bagaimana Anda mengubah ukuran fungsi dengan python?
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

Bagaimana Anda mengubah ukuran fungsi dengan python?
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.