Riješeno: promijenite veličinu slike i uključite je u numpy niz opencv

U modernom svijetu slike su bitan dio komunikacije i tehnologije. Sa napretkom u umjetnoj inteligenciji, strojnom učenju i kompjuterskom vidu, postalo je sve važnije razumjeti kako efikasno obraditi i manipulirati slikama. Ovaj članak govori o preovlađujućem problemu – promjeni veličine slika i njihovom uklapanju u NumPy niz koristeći OpenCV, popularnu biblioteku računarskog vida otvorenog koda. Ići ćemo u dubinu, pružajući sistematski pristup, objašnjavajući kod korak po korak, pominjući uključene biblioteke i funkcije, te njihov značaj za problem koji je u pitanju.

Uvod

Slike se pohranjuju kao matrice koje sadrže intenzitet piksela. Da bi efikasno radili sa slikovnim podacima, programeri često moraju da promene veličinu slike da bi se uklopila u NumPy niz prema njihovim zahtevima. Jedna od najboljih biblioteka za postizanje ovog cilja je OpenCV, koji neprimjetno zadovoljava različite potrebe obrade slika. U ovom članku ćemo pokazati kako promijeniti veličinu slike i uklopiti je u NumPy niz koristeći Python i OpenCV.

Uvoz potrebnih biblioteka

Za početak, moramo uvesti potrebne biblioteke u naše Python okruženje.

import cv2
import numpy as np
  • cv2: OpenCV biblioteka koja se koristi za zadatke obrade slika.
  • numpy: NumPy biblioteka pruža podršku za efikasan rad sa nizovima i matricama.

Učitavanje i promjena veličine slike

Prvo, moramo učitati sliku, a zatim joj promijeniti veličinu koristeći OpenCV funkciju cv2.resize():

# Load the image
image = cv2.imread('path/to/image.jpg')

# Define the new size (width, height)
new_size = (300, 300)

# Resize the image
resized_image = cv2.resize(image, new_size, interpolation=cv2.INTER_AREA)
  • cv2.imread(): Ova funkcija čita sliku sa specificirane putanje datoteke.
  • nova_veličina: Tuple koji sadrži željenu širinu i visinu slike promijenjene veličine. U ovom slučaju, želimo da ga promenimo na 300×300 piksela.
  • cv2.resize(): On mijenja veličinu slike na određene dimenzije koristeći specificiranu metodu interpolacije.

Ugradnja slike promijenjene veličine u NumPy niz

Kada se veličina slike promijeni, moramo je uklopiti u NumPy niz:

# Create a NumPy array with the desired dimensions (width, height, channels)
array_shape = (300, 300, 3)

# Fit the resized image into the NumPy array
numpy_image = np.zeros(array_shape, dtype=np.uint8)
numpy_image[:resized_image.shape[0], :resized_image.shape[1]] = resized_image
  • array_shape: Tuple koji sadrži željene dimenzije za NumPy niz. Mora imati istu širinu, visinu i broj kanala kao naša slika promijenjene veličine.
  • np.nule(): Ova funkcija kreira prazan NumPy niz sa navedenim dimenzijama i tipom podataka.
  • dtype: Definira tip podataka NumPy niza. np.uint8 predstavlja 8-bitni neoznačeni cijeli broj, koji se obično koristi za slikovne podatke.

Nakon dovršetka ovih koraka, veličina slike je sada promijenjena i uklapa se u NumPy niz, spremna za dalju obradu.

Dodatne OpenCV funkcije i tehnike

Evo nekoliko dodatnih OpenCV funkcija i tehnika koje se odnose na promjenu veličine slika:

  • cv2.INTER_LINEAR: Koristi se za podrazumevanu interpolaciju u cv2.resize().
  • cv2.INTER_CUBIC: Pruža bolju kvalitetnu promjenu veličine za povećanje. Sporije je u odnosu na druge metode interpolacije.
  • cv2.INTER_NEAREST: Najbrži metod za promjenu veličine. Međutim, kvalitet se pogoršava zbog odsustva interpolacije.
  • Razmatranje omjera: Prilikom promjene veličine, očuvanje omjera je ključno, ako ne, slika može biti izobličena.

Ukratko, pokazali smo kako promijeniti veličinu slike i uklopiti je u NumPy niz koristeći OpenCV. Prateći navedene korake, programeri mogu efikasno manipulisati slikama za različite računarske vidove, mašinsko učenje i druge aplikacije.

Slični postovi:

Ostavite komentar