Samouczek programowania w Pythonie
On 29 listopada, 2021 by adminRysowanie i pisanie na obrazie OpenCV Python Tutorial
W tym poradniku OpenCV z Pythonem, zamierzamy omówić jak rysować różne kształty na obrazach i wideo. Jest to dość powszechne, aby oznaczyć wykryte obiekty w jakiś sposób, więc my, ludzie, możemy łatwo zobaczyć, czy nasze programy działają tak, jak moglibyśmy mieć nadzieję. Przykładem tego może być jeden z obrazów pokazanych wcześniej:
Do tego tymczasowego przykładu użyję następującego obrazu:
Zachęcamy do użycia własnego obrazu. Jak zwykle, nasz kod startowy może wyglądać tak:
import numpy as npimport cv2img = cv2.imread('watch.jpg',cv2.IMREAD_COLOR)
Następnie, możemy zacząć rysować, tak jak:
cv2.line(img,(0,0),(150,150),(255,255,255),15)cv2.imshow('image',img)cv2.waitKey(0)cv2.destroyAllWindows()
Kod cv2.line() przyjmuje następujące parametry: gdzie, współrzędne początkowe, współrzędne końcowe, kolor (bgr), grubość linii.
Wynik tutaj:
Dobra, spoko, zajmijmy się absurdem z kilkoma innymi kształtami. Następny w kolejności, prostokąt:
cv2.rectangle(img,(15,25),(200,150),(0,0,255),15)
Parametrami są tutaj obraz, lewa górna współrzędna, prawa dolna współrzędna, kolor i grubość linii.
A może okrąg?
cv2.circle(img,(100,63), 55, (0,255,0), -1)
Parametrami są tutaj obraz/ramka, środek okręgu, promień, kolor, a następnie grubość. Zauważ, że mamy -1 dla grubości. Oznacza to, że obiekt będzie faktycznie wypełniony, więc dostaniemy wypełniony okrąg.
Linie, prostokąty i okręgi są fajne i w ogóle, ale co jeśli chcemy pięciokąt, ośmiokąt lub ośmiokąt?! Nie ma problemu!
Po pierwsze, nazwiemy pts, skrót od points, jako numpy array of coordinates. Następnie, używamy cv2.polylines do rysowania linii. Parametry są następujące: gdzie obiekt jest rysowany, współrzędne, czy powinniśmy „połączyć” końcową i początkową kropkę, kolor i ponownie grubość.
Ostatnią rzeczą, którą możesz chcieć zrobić, jest pisanie na obrazie. Można to zrobić w następujący sposób:
font = cv2.FONT_HERSHEY_SIMPLEXcv2.putText(img,'OpenCV Tuts!',(0,130), font, 1, (200,255,155), 2, cv2.LINE_AA)
Pełny kod do tego momentu wyglądałby następująco:
Wynik:
W następnym tutorialu zajmiemy się podstawowymi operacjami na obrazie, które możemy wykonać.
Dodaj komentarz