Python-ohjelmoinnin opetusohjelmat
On 29 marraskuun, 2021 by adminDrawing and Writing on Image OpenCV Python Tutorial
Tässä OpenCV:n ja Pythonin opetusohjelmassa käsittelemme erilaisten muotojen piirtämistä kuviin ja videoihin. On melko yleistä, että havaitut kohteet halutaan merkitä jollain tavalla, jotta me ihmiset voimme helposti nähdä, toimivatko ohjelmamme toivotulla tavalla. Esimerkkinä tästä voisi olla jokin aiemmin näytetyistä kuvista:
Tässä väliaikaisessa esimerkissä käytän seuraavaa kuvaa:
Sinua kannustetaan käyttämään omaa kuvaasi. Kuten tavallista, aloituskoodimme voi olla jotakuinkin:
import numpy as npimport cv2img = cv2.imread('watch.jpg',cv2.IMREAD_COLOR)
Jatkossa voimme aloittaa piirtämisen, kuten:
cv2.line(img,(0,0),(150,150),(255,255,255),15)cv2.imshow('image',img)cv2.waitKey(0)cv2.destroyAllWindows()
Cv2.line() ottaa seuraavat parametrit: where, aloituskoordinaatit, lopetuskoordinaatit, väri (bgr), viivan paksuus.
Tulos täältä:
Oikea, siistiä, aloitetaanpa järjettömät muodot. Seuraavaksi suorakulmio:
cv2.rectangle(img,(15,25),(200,150),(0,0,255),15)
Parametrit tässä ovat kuva, vasemmanpuoleinen yläkoordinaatti, oikeanpuoleinen alakoordinaatti, väri ja viivan paksuus.
Entäpä ympyrä?
cv2.circle(img,(100,63), 55, (0,255,0), -1)
Parametrit tässä ovat kuva/kehys, ympyrän keskipiste, säde, väri ja sitten paksuus. Huomaa, että meillä on -1 paksuudelle. Tämä tarkoittaa, että objekti todella täytetään, joten saamme täytetyn ympyrän.
Viivat, suorakulmiot ja ympyrät ovat siistejä ja kaikkea, mutta entä jos haluamme viisikulmion, kahdeksankulmion tai kahdeksankymmenkulmion?! Ei ongelmaa!
Aluksi nimetään pts, lyhenne sanoista points, numpy-joukko koordinaatteja. Sitten käytämme cv2.polylines-ohjelmaa viivojen piirtämiseen. Parametrit ovat seuraavat: mihin kohteeseen piirretään, koordinaatit, ”yhdistetäänkö” loppu- ja alkupiste, väri ja taas paksuus.
Viimeiseksi kannattaa vielä kirjoittaa kuvaan. Tämä voidaan tehdä näin:
font = cv2.FONT_HERSHEY_SIMPLEXcv2.putText(img,'OpenCV Tuts!',(0,130), font, 1, (200,255,155), 2, cv2.LINE_AA)
Täydellinen koodi tähän asti olisi jotakuinkin:
Tulos:
Seuraavassa opetusohjelmassa käsittelemme kuvan perusoperaatioita, joita voimme suorittaa.
Vastaa