Grundlæggende Transformationer
OpenCV (Open Source Computer Vision Library) er et kraftfuldt open source-bibliotek designet til realtids computer vision og billedbehandling. Det tilbyder værktøjer til at manipulere billeder, detektere objekter og endda arbejde med dybe læringsmodeller.
Indlæsning og visning af et billede
Før der udføres transformationer, skal vi først indlæse og vise et billede ved hjælp af OpenCV. Vi har allerede importeret billedet. Men på din lokale computer skal du for simpel indlæsning og visning af billedet bruge:
import cv2
image = cv2.imread('path/to/image.jpg')
cv2.imshow('Image title', image)
Ændring af billedstørrelse
Ændring af størrelse er nyttigt til at skalere billeder op eller ned, mens aspektforholdet bevares (fx
og fy
parametre),
hvor fx
og fy
definerer skaleringsfaktoren for bredde og højde.
resized_image = cv2.resize(image, fx=0.7, fy=0.5)
Du kan også angive præcise pixel-dimensioner (dsize
-parameteren),
hvor dsize
er (new_y, new_x)
output-formen.
resized = cv2.resize(image, (100, 100))
Rotation af et billede
For at rotere et billede med en bestemt vinkel anvendes cv2.getRotationMatrix2D()
og cv2.warpAffine()
.
cv2.getRotationMatrix2D(center, angle, scale)
definerer rotationsmatricen;cv2.warpAffine(image, matrix, output_size)
anvender transformationen.
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))
Beskæring af et billede
Beskæring udtrækker et specifikt område fra et billede. Dette udføres ved hjælp af NumPy-slicing.
Syntaksen image[start_y:end_y, start_x:end_x]
vælger et interesseområde.
cropped = image[450:500, 250:350]
Swipe to start coding
Du har fået et image
:
- Ændr billedets størrelse til
(100, 100)
og gem det i variablenresized
; - Udtræk
height
ogwidth
fra billedet; - Beregn
center
ud fraheight
ogwidth
; - Opret en rotationsmatrix og gem den i variablen
rotation_matrix
; - Rotér billedet 90 grader med uret og gem det i variablen
rotated
; - Beskær området X: 250-600 og Y: 100-450 af billedet og gem det i variablen
cropped
.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain what each OpenCV function does in these examples?
How do I choose the right parameters for resizing or rotating an image?
Can you show more examples of image transformations?
Awesome!
Completion rate improved to 3.45
Grundlæggende Transformationer
Stryg for at vise menuen
OpenCV (Open Source Computer Vision Library) er et kraftfuldt open source-bibliotek designet til realtids computer vision og billedbehandling. Det tilbyder værktøjer til at manipulere billeder, detektere objekter og endda arbejde med dybe læringsmodeller.
Indlæsning og visning af et billede
Før der udføres transformationer, skal vi først indlæse og vise et billede ved hjælp af OpenCV. Vi har allerede importeret billedet. Men på din lokale computer skal du for simpel indlæsning og visning af billedet bruge:
import cv2
image = cv2.imread('path/to/image.jpg')
cv2.imshow('Image title', image)
Ændring af billedstørrelse
Ændring af størrelse er nyttigt til at skalere billeder op eller ned, mens aspektforholdet bevares (fx
og fy
parametre),
hvor fx
og fy
definerer skaleringsfaktoren for bredde og højde.
resized_image = cv2.resize(image, fx=0.7, fy=0.5)
Du kan også angive præcise pixel-dimensioner (dsize
-parameteren),
hvor dsize
er (new_y, new_x)
output-formen.
resized = cv2.resize(image, (100, 100))
Rotation af et billede
For at rotere et billede med en bestemt vinkel anvendes cv2.getRotationMatrix2D()
og cv2.warpAffine()
.
cv2.getRotationMatrix2D(center, angle, scale)
definerer rotationsmatricen;cv2.warpAffine(image, matrix, output_size)
anvender transformationen.
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))
Beskæring af et billede
Beskæring udtrækker et specifikt område fra et billede. Dette udføres ved hjælp af NumPy-slicing.
Syntaksen image[start_y:end_y, start_x:end_x]
vælger et interesseområde.
cropped = image[450:500, 250:350]
Swipe to start coding
Du har fået et image
:
- Ændr billedets størrelse til
(100, 100)
og gem det i variablenresized
; - Udtræk
height
ogwidth
fra billedet; - Beregn
center
ud fraheight
ogwidth
; - Opret en rotationsmatrix og gem den i variablen
rotation_matrix
; - Rotér billedet 90 grader med uret og gem det i variablen
rotated
; - Beskær området X: 250-600 og Y: 100-450 af billedet og gem det i variablen
cropped
.
Løsning
Tak for dine kommentarer!
single