Handledning i Python
On november 29, 2021 by adminRita och skriva på bilder OpenCV Python-handledning
I den här handledningen om OpenCV med Python kommer vi att ta upp hur du kan rita olika former på dina bilder och videor. Det är ganska vanligt att vilja markera upptäckta objekt på något sätt, så att vi människor enkelt kan se om våra program fungerar som vi hoppas. Ett exempel på detta skulle vara en av bilderna som visades tidigare:
För detta tillfälliga exempel kommer jag att använda följande bild:
Du uppmanas att använda din egen bild. Som vanligt kan vår startkod vara något i stil med:
import numpy as npimport cv2img = cv2.imread('watch.jpg',cv2.IMREAD_COLOR)
Nästan kan vi börja rita, som:
cv2.line(img,(0,0),(150,150),(255,255,255),15)cv2.imshow('image',img)cv2.waitKey(0)cv2.destroyAllWindows()
Cv2.line() tar följande parametrar: where, startkoordinater, slutkoordinater, färg (bgr), linjetjocklek.
Resultatet här:
Okej, häftigt, låt oss bli absurda med några fler former. Nästa steg är en rektangel:
cv2.rectangle(img,(15,25),(200,150),(0,0,255),15)
Parametrarna här är bilden, den övre vänstra koordinaten, den nedre högra koordinaten, färg och linjetjocklek.
Hur vore det med en cirkel?
cv2.circle(img,(100,63), 55, (0,255,0), -1)
Parametrarna här är bilden/ramen, cirkelns mittpunkt, radien, färg och sedan tjocklek. Lägg märke till att vi har en -1 för tjocklek. Det betyder att objektet faktiskt kommer att fyllas ut, så vi får en fylld cirkel.
Linjer, rektanglar och cirklar är häftiga och allt, men vad händer om vi vill ha en femhörning, eller en åtthörning, eller en åttondekagon?! Inga problem!
Först namnger vi pts, en förkortning för points, som en numpy-array av koordinater. Sedan använder vi cv2.polylines för att rita linjerna. Parametrarna är följande: var är objektet som ritas till, koordinaterna, ska vi ”koppla ihop” slut- och startpunkten, färgen och återigen tjockleken.
Det sista du kanske vill göra är att skriva på bilden. Detta kan göras så här:
font = cv2.FONT_HERSHEY_SIMPLEXcv2.putText(img,'OpenCV Tuts!',(0,130), font, 1, (200,255,155), 2, cv2.LINE_AA)
Full kod fram till denna punkt skulle vara något i stil med:
Resultatet:
I nästa handledning kommer vi att täcka grundläggande bildoperationer som vi kan utföra.
Lämna ett svar