Grunnleggende Transformasjoner
OpenCV (Open Source Computer Vision Library) er et kraftig åpen kildekode-bibliotek utviklet for sanntids datamaskinsyn og bildebehandling. Det tilbyr verktøy for å manipulere bilder, oppdage objekter og til og med arbeide med dyp læring-modeller.
Lese og vise et bilde
Før du utfører transformasjoner, må vi først laste inn og vise et bilde ved hjelp av OpenCV. Vi har allerede importert bildet. Men på din lokale datamaskin, for enkel lesing og visning av bildet, bør du bruke:
import cv2
image = cv2.imread('path/to/image.jpg')
cv2.imshow('Image title', image)
Endre størrelse på et bilde
Endring av størrelse er nyttig for å skalere bilder opp eller ned samtidig som forholdet mellom bredde og høyde (fx
og fy
parametere) opprettholdes,
hvor fx
og fy
definerer skaleringsfaktoren for bredde og høyde.
resized_image = cv2.resize(image, fx=0.7, fy=0.5)
Du kan også angi eksakte pikselmål (dsize
-parameteren),
hvor dsize
er (new_y, new_x)
for ønsket utdataformat.
resized = cv2.resize(image, (100, 100))
Rotasjon av bilde
For å rotere et bilde med en spesifikk vinkel, brukes cv2.getRotationMatrix2D()
og cv2.warpAffine()
.
cv2.getRotationMatrix2D(center, angle, scale)
definerer rotasjonsmatrisen;cv2.warpAffine(image, matrix, output_size)
utfører transformasjonen.
height, width = image.shape[:2]
centre = (width // 2, height // 2)
rotation_matrix = cv2.getRotationMatrix2D(centre, 180, 1)
rotated = cv2.warpAffine(image, rotation_matrix, (width, height))
Beskjæring av bilde
Beskjæring henter ut et spesifikt område fra et bilde. Dette gjøres med NumPy-slicing.
Syntaksen image[start_y:end_y, start_x:end_x]
velger et interesseområde.
cropped = image[450:500, 250:350]
Swipe to start coding
Du har fått et image
:
- Endre størrelsen på bildet til
(100, 100)
og lagre det i variabelenresized
; - Hent ut
height
ogwidth
fra bildet; - Beregn
center
avheight
ogwidth
; - Opprett rotasjonsmatrise og lagre den i variabelen
rotation_matrix
; - Roter bildet 90 grader med klokken og lagre det i variabelen
rotated
; - Beskjær området X: 250-600 og Y: 100-450 fra bildet og lagre det i variabelen
cropped
.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 3.45
Grunnleggende Transformasjoner
Sveip for å vise menyen
OpenCV (Open Source Computer Vision Library) er et kraftig åpen kildekode-bibliotek utviklet for sanntids datamaskinsyn og bildebehandling. Det tilbyr verktøy for å manipulere bilder, oppdage objekter og til og med arbeide med dyp læring-modeller.
Lese og vise et bilde
Før du utfører transformasjoner, må vi først laste inn og vise et bilde ved hjelp av OpenCV. Vi har allerede importert bildet. Men på din lokale datamaskin, for enkel lesing og visning av bildet, bør du bruke:
import cv2
image = cv2.imread('path/to/image.jpg')
cv2.imshow('Image title', image)
Endre størrelse på et bilde
Endring av størrelse er nyttig for å skalere bilder opp eller ned samtidig som forholdet mellom bredde og høyde (fx
og fy
parametere) opprettholdes,
hvor fx
og fy
definerer skaleringsfaktoren for bredde og høyde.
resized_image = cv2.resize(image, fx=0.7, fy=0.5)
Du kan også angi eksakte pikselmål (dsize
-parameteren),
hvor dsize
er (new_y, new_x)
for ønsket utdataformat.
resized = cv2.resize(image, (100, 100))
Rotasjon av bilde
For å rotere et bilde med en spesifikk vinkel, brukes cv2.getRotationMatrix2D()
og cv2.warpAffine()
.
cv2.getRotationMatrix2D(center, angle, scale)
definerer rotasjonsmatrisen;cv2.warpAffine(image, matrix, output_size)
utfører transformasjonen.
height, width = image.shape[:2]
centre = (width // 2, height // 2)
rotation_matrix = cv2.getRotationMatrix2D(centre, 180, 1)
rotated = cv2.warpAffine(image, rotation_matrix, (width, height))
Beskjæring av bilde
Beskjæring henter ut et spesifikt område fra et bilde. Dette gjøres med NumPy-slicing.
Syntaksen image[start_y:end_y, start_x:end_x]
velger et interesseområde.
cropped = image[450:500, 250:350]
Swipe to start coding
Du har fått et image
:
- Endre størrelsen på bildet til
(100, 100)
og lagre det i variabelenresized
; - Hent ut
height
ogwidth
fra bildet; - Beregn
center
avheight
ogwidth
; - Opprett rotasjonsmatrise og lagre den i variabelen
rotation_matrix
; - Roter bildet 90 grader med klokken og lagre det i variabelen
rotated
; - Beskjær området X: 250-600 og Y: 100-450 fra bildet og lagre det i variabelen
cropped
.
Løsning
Takk for tilbakemeldingene dine!
single