- Wat zijn afbeeldingen?
- Hoe de computer afbeeldingen opslaat
- Waarom het voor een machine moeilijk is om afbeeldingen te identificeren
- Toepassing en gebruik van OpenCV
- OpenCV installeren met Python en Anaconda
- Afbeeldingen openen en opslaan in OpenCV
- Afbeelding in grijstinten in OpenCV
- Kleurruimten
- Het verkennen van individuele componenten van RGB-beeld
- Afbeelding omzetten in individuele RGB-component
- Histogramweergave van afbeelding
- Afbeeldingen en vormen tekenen met OpenCV
Kunst is een manier van zien, en ze zeggen dat zien is geloven, maar het tegenovergestelde is ook waar, geloven is zien en het is echt moeilijk voor te stellen dat je in deze wereld zou leven zonder de gave van visie - onze ogen, hoe geweldig het is om een baby te zijn wanneer onze ogen gewoon opengaan, zien we de wereld en beginnen we de wereld om ons heen te herkennen en te zien, maar naarmate de tijd verstrijkt, wordt dezelfde prachtige ervaring een alledaagse ervaring. Maar naarmate we vorderen met de technologie, staan we op een punt waar de machines het ook kunnen zien en begrijpen. Momenteel lijkt het geen sci-fi te zijn als je je telefoon gewoon met je gezicht ontgrendelt, maar het verhaal van de ontwikkeling van de machinevisie gaat al lang terug tot meer dan 20 jaar.
De eerste formele stap op dit gebied werd in 1999 genomen in een initiatief van Intel, toen al het lopende onderzoek werd samengewerkt onder het OPEN CV (Open Source computervisie), oorspronkelijk geschreven in C ++, met de eerste grote release 1.0 in 2006 als tweede in 2009, derde in 2015 en vierde zojuist in 2018. Nu heeft OpenCV C ++, Python en Java-interfaces en ondersteunt Windows, Linux, Mac OS, iOS en Android. Het kan dus eenvoudig worden geïnstalleerd in Raspberry Pi met Python- en Linux-omgeving. En Raspberry Pi met OpenCV en aangesloten camera kan worden gebruikt om veel realtime beeldverwerkingstoepassingen te maken, zoals gezichtsherkenning, gezichtsvergrendeling, objecttracering, auto-nummerplaatdetectie, huisbeveiligingssysteem enz.
Voordat u begint met het leren van beeldverwerking met openCV, is het belangrijk om te weten wat afbeeldingen zijn en hoe mensen en machines die afbeeldingen waarnemen.
Wat zijn afbeeldingen?
Afbeeldingen zijn een tweedimensionale weergave van het zichtbare lichtspectrum. En het zichtbare lichtspectrum is slechts een deel van het elektromagnetische spectrum dat daar tussen infrarood en ultraviolet spectrum ligt.
Hoe worden beelden gevormd: - wanneer een licht van een object weerkaatst op een film, een sensor of op het netvlies.
Dit is hoe onze ogen werken, door een barrière te gebruiken om de meeste lichtpunten te blokkeren, waardoor er een kleine opening ontstaat waar licht doorheen kan gaan, het wordt een diafragma genoemd, en het vormt een veel gefocust beeld en is een werkend model voor een camera met gaatjes, maar er is een probleem met een camera met gaatjes, diezelfde hoeveelheid licht zal het diafragma binnendringen, wat niet geschikt zou kunnen zijn voor de film of het gevormde beeld, ook kunnen we geen scherp beeld krijgen, om het beeld te focussen dat we film heen en weer moeten bewegen, maar dit is in veel situaties problematisch.
Of we kunnen dit probleem oplossen door lenzen te gebruiken, het stelt ons in staat om het diafragma te regelen, en in fotografie staat het bekend als f Stop, over het algemeen is een lagere waarde van f Stop beter in fotografie.
Het diafragma laat ons ook in de mooie scherptediepte komen, Bokeh genoemd in fotografie, het stelt ons in staat om een wazige achtergrond te hebben terwijl we ons concentreren op het beeld.
Hoe de computer afbeeldingen opslaat
Je hebt misschien gehoord van verschillende afbeeldingsindelingen zoals.png,.jpgG en etc. dit zijn allemaal digitale representaties van onze analoge wereld, computers doen het door de afbeelding te vertalen naar digitale code voor opslag en vervolgens het bestand weer te interpreteren in een afbeelding voor Scherm. Maar in de basis gebruiken ze een gemeenschappelijk platform voor het opslaan van de afbeeldingen, en hetzelfde geldt voor de openCV.
OpenCV gebruikt standaard RGB-kleurruimte (rood, groen en blauw) voor zijn afbeeldingen, waarbij elke pixelcoördinaat (x, y) 3 waarden bevat die variëren voor intensiteiten in 8-bits vorm, dwz (0-255, 28).
Het mengen van verschillende intensiteiten van elke kleur geeft ons het volledige spectrum, daarom worden deze drie kleuren in de schilderkunst of de kunst als primaire kleuren beschouwd en alle andere als secundair, omdat de meeste secundaire kleuren kunnen worden gevormd door primaire kleuren. Net als voor geel hebben we de volgende waarden: Rood - 255; Groen - 255; Blauw - 0.
Nu worden de afbeeldingen opgeslagen in multidimensionale arrays. Bij het programmeren is array een reeks verzameling objecten. En hier hebben we te maken met drie soorten arrays 1D, 2D en 3D waarbij 'D' staat voor dimensionaal.
Gekleurde afbeeldingen worden opgeslagen in driedimensionale arrays, waarbij de derde dimensie de RGB-kleuren vertegenwoordigt (die we later zullen zien), en samen vormen ze verschillende intensiteiten van pixels voor een afbeelding, terwijl de zwart- witafbeeldingen worden opgeslagen in tweedimensionale arrays. en er zijn ook twee soorten zwart-witafbeeldingen Grijstinten en binaire afbeeldingen.
Grijswaardenafbeeldingen zijn gevormd uit de grijstinten van een tweedimensionale array, terwijl de binaire afbeeldingen bestaan uit pixels in zwart of wit.
Waarom het voor een machine moeilijk is om afbeeldingen te identificeren
Computervisie is een uitdagende taak op zich, u kunt zich voorstellen hoe moeilijk het is om een machine zicht, herkenning en identificatie te geven. De volgende factoren maken computervisie zo moeilijk.
- Camerasensor en lensbeperkingen
- Bekijk puntvariaties
- Veranderende verlichting
- Schalen
- Occlusies
- Variaties in objectklasse
- Dubbelzinnige afbeeldingen / optische illusies
Toepassing en gebruik van OpenCV
Ondanks de moeilijkheid heeft Computer Vision veel succesverhalen
- Robotnavigatie - zelfrijdende auto's
- Gezichtsdetectie en -herkenning
- Zoekmachine afbeeldingen zoeken
- Kentekenplaat lezen
- Handschrift herkenning
- Snapchat- en gezichtsfilters
- Object herkenning
- Ballen en spelers volgen in de sport
- En nog veel meer!
OpenCV installeren met Python en Anaconda
OpenCV is geschreven in C ++, maar het is erg moeilijk om het te implementeren met C ++ en daarom kiezen we ervoor om het te implementeren met een taal op hoog niveau als python, en er zijn ook extra voordelen van het implementeren van OpenCV met python, aangezien Python een van de gemakkelijkste talen is ook voor beginners Het is buitengewoon krachtig voor data science en machine learning-toepassingen en het slaat ook afbeeldingen op in numpy arrays waardoor we vrij gemakkelijk enkele zeer krachtige bewerkingen kunnen uitvoeren.
Basisprogrammering is handig met Exposure to High School Level Math, een webcam, Python 2.7 of 3.6 (Anaconda Package heeft de voorkeur).
Stap 1. Download en installeer Anaconda Python-pakket
Ga naar: https://www.anaconda.com/download en kies op basis van het weer van uw machine de windows, Linux of mac en u kunt kiezen voor python 2.7 of python 3.7-versie voor 64-bits systemen of 32-bits systemen, maar nu een dag zijn de meeste systemen 64 bit.
Anaconda-distributie van python komt samen met Spyder studio, jupyter-notebooks en anaconda-prompt, wat python super vriendelijk in gebruik maakt. We zouden Spyder Studio gebruiken voor de voorbeelden.
De keuze tussen python 2.7 of 3.7 is volledig neutraal, maar voor de voorbeelden zouden we echter python 3.7 gebruiken, aangezien het de toekomst van de python is en python 2.7 van 2020 zal overnemen, ook worden de meeste bibliotheken ontwikkeld in python 3.7. het toekomstige aspect van python in gedachten. Het geeft ook de verwachte resultaten voor elementaire wiskundige bewerkingen zoals (2/5 = 2.5), terwijl de python 2.7 het zou evalueren naar 2. Ook print wordt behandeld als een functie in python 3.7 (print ("hallo")), dus het geeft hands-on aan de programmeurs.
Stap 2. Creëren van een virtueel platform met OpenCV
We gaan OpenCV installeren door een virtueel platform voor spyder te maken met behulp van de Anaconda-prompt en het YML-bestand dat hier is geüpload.
Met de YML-bestanden zullen we alle pakketten en bibliotheken installeren die nodig zouden zijn, maar als je echter extra pakketten wilt installeren, kun je deze eenvoudig installeren via de anaconda-prompt, door de opdracht van dat pakket uit te voeren.
Ga naar je Windows-zoekpictogram en zoek de anaconda-promptterminal, je kunt het vinden in je anaconda-map die je zojuist hebt geïnstalleerd.
Dan moet je je gedownloade YML-bestand vinden, en vanaf hier heb je twee keuzes: ofwel de directory van je terminal veranderen naar de locatie waar je YML-bestand is gedownload of ofwel je YML-bestand kopiëren naar de directory waar je anaconda in de meeste gevallen zou het in C: \ drive zijn, na het kopiëren van uw YML-bestand naar de opgegeven locatie RUN de volgende opdracht op uw prompt
conda env create –f virtual_platform_windows.yml
Aangezien mijn systeem op windows draait, komt het YML-bestand en de opdracht overeen met de windows, maar je kunt het aanpassen aan je systeem door windows te vervangen door linux of mac als respectievelijke.
Opmerking: - Als de pakketextractie een fout geeft, installeer dan eerst pytorch en numpy en voer vervolgens de bovenstaande opdracht uit.
Zoek nu de anaconda-navigator en er zou een vervolgkeuzemenu zijn met "Toepassingen op ___" en van daaruit de virtuele omgeving selecteren en van daaruit moet je Spyder studio starten.
En dat is alles, u bent klaar om aan de slag te gaan!
Afbeeldingen openen en opslaan in OpenCV
Hier leggen we enkele basiscommando's en terminologie uit om Python in OpenCV te gebruiken. We zullen drie basisfuncties leren in OpenCV imread, imshow en imwrite.
#comments in python worden gegeven door # -symbool
Importeer opencv in python op commando
importeer cv2
Laad een afbeelding met 'imread' en geef het pad naar de afbeelding op
afbeelding = cv2.imread ('input.jpg')
Nu wordt die afbeelding geladen en opgeslagen in python als een variabele die we als afbeelding hebben genoemd
Om nu onze afbeeldingsvariabele weer te geven, gebruiken we 'imshow' en de eerste parameter voor de imshow-functie is de titel die in het afbeeldingsvenster wordt weergegeven, en deze moet worden ingevoerd in ('') om de naam als een tekenreeks weer te geven
cv2.imshow ('hallo wereld', afbeelding)
waitkey stelt ons in staat om informatie in te voeren wanneer het afbeeldingsvenster open is, door het leeg te laten, wacht het gewoon op een willekeurige toets om verder te gaan, door getallen te plaatsen (behalve 0), kunnen we een vertraging specificeren voor hoe lang u het venster open houdt (tijd in milliseconden hier).
cv2.waitKey ()
'destroyAllWindows' sluit alle geopende vensters, als u dit niet plaatst, zal uw programma vastlopen.
cv2.destroyAllWindows ()
, hiervoor zullen we numpy gebruiken, numpy is een bibliotheek voor python-programmering voor het toevoegen van ondersteuning aan grote multidimensionale arrays en matrices.
import cv2 #importing numpy import numpy als np image = cv2.imread ('input.jpg') cv2.imshow ('hello_world', afbeelding) #shape- functie is erg handig als we kijken naar de afmetingen van een array, geeft een tuple terug die een dimensie geeft van een afbeelding print (image.shape) cv2.waitKey () cv2.destroyAllWindows ()
console-uitvoer - (183, 275, 3), De twee afmetingen van de afbeelding zijn 183 pixels hoog en 275 pixels breed en 3 betekent dat er drie andere componenten (R, G, B) zijn die deze afbeelding maken (deze toont dat de gekleurde afbeeldingen worden opgeslagen in driedimensionale arrays).
print ('Hoogte van afbeelding:', (image.shape, 'pixels')) print ('Breedte van afbeelding:', (image.shape, 'pixels'))
console-uitvoer - Hoogte van afbeelding: (183, 'pixels')
Breedte van afbeelding: (275, 'pixels')
De bewerkte afbeelding opslaan in OpenCV
We gebruiken 'imwrite' voor het specificeren van de bestandsnaam en de afbeelding die moet worden opgeslagen.
cv2.imwrite ('output.jpg', afbeelding) cv2.imwrite ('output.png', afbeelding)
Het eerste argument is de naam van het bestand dat we willen opslaan, {om het bestand te lezen of op te slaan dat we gebruiken ('') om het aan te duiden als een string} en het tweede argument is de bestandsnaam.
Met OpenCV kunt u de afbeelding in verschillende formaten opslaan.
Afbeelding in grijstinten in OpenCV
Grijstinten is het proces waarmee een afbeelding wordt omgezet van een volledige kleur naar grijstinten (zwart en wit)
In opencv schalen veel functies de afbeeldingen in grijstinten voordat ze worden verwerkt. Dit wordt gedaan omdat het het beeld vereenvoudigt, bijna als een ruisonderdrukking fungeert en de verwerkingstijd verlengt omdat er minder informatie in het beeld zit (aangezien grijswaardenbeelden worden opgeslagen in tweedimensionale arrays).
import cv2 # laad onze invoer afbeelding afbeelding = cv2.imread ('input.jpg') cv2.imshow ('origineel', afbeelding) cv2.waitKey () # we gebruiken cvtcolor, om te converteren naar grijswaarden gray_image = cv2.cvtColor (afbeelding, cv2.COLOR_BGR2GRAY) cv2.imshow ('grijstinten', grijze_afbeelding) cv2.waitKey () cv2.destroyALLWindows ()
Een eenvoudigere manier om een afbeelding in grijswaarden om te zetten, is door gewoon het argument 0 in de imread- functie naast de afbeeldingsnaam toe te voegen
import cv2 grey_image = cv2.imread ('input.jpg', 0) cv2.imshow ('grijstinten', grey_image) cv2.waitKey () cv2.destroyAllWindows ()
import cv2 import numpy als np image = cv2.imread ('input.jpg') print (image.shape) cv2.imshow ('origineel', afbeelding) cv2.waitKey () grey_image = cv2.cvtColor (image, cv2.COLOR_BGR2GRAY) cv2.imshow ('grijstinten', grijze_afbeelding) print (grijze_afbeelding.vorm) cv2.waitKey () cv2.destroyALLWindows ()
Console-uitgang: - (183, 275, 3) - voor kleurenbeeld
(183, 275) - voor afbeeldingen in grijstinten
Het laat dus duidelijk zien dat de gekleurde afbeeldingen worden weergegeven door driedimensionale arrays, terwijl de grijsschaalbeelden door tweedimensionale arrays worden weergegeven.
Kleurruimten
Kleurruimten zijn de manier waarop de afbeeldingen worden opgeslagen. RGB, HSV, CMYK zijn de verschillende kleurruimten, dit zijn slechts eenvoudige manieren om kleur weer te geven.
RGB - Rood, Groen en Blauw.
HSV - Tint, verzadiging en waarde.
En CMYK wordt vaak gebruikt in inkjetprinters.
RGB- of BGR-kleurruimte
De standaardkleurruimte van OpenCV is RGB. RGB is een additief kleurmodel dat kleuren genereert door blauwe, groene en rode kleuren met verschillende intensiteiten / helderheid te combineren. In OpenCV gebruiken we 8 bit kleurdiepten.
- Rood (0-255)
- Blauw (0-255)
- Groen (0-255)
OpenCV slaat kleur echter daadwerkelijk op in BGR-indeling.
Leuk weetje: - We gebruiken de BGR-volgorde op computers vanwege de manier waarop niet-ondertekende 32-bits gehele getallen in het geheugen worden opgeslagen, maar het wordt nog steeds opgeslagen als RGB. Het gehele getal dat een kleur voorstelt, bijvoorbeeld: - 0X00BBGGRR wordt opgeslagen als 0XRRGGBB.
HSV-kleurruimteHSV (Hue, Saturation & Value / Brightness) is een kleurruimte die probeert kleuren weer te geven die de mensen het waarnemen. Het slaat kleurinformatie op in een cilindrische weergave van RGB-kleurpunten.
Tint - kleurwaarde (0-179)
Verzadiging - Levendigheid van kleur (0-255)
Waarde - Helderheid of intensiteit (0-255)
HSV-kleurruimte-indeling is handig bij kleursegmentatie. In RGB is het filteren van specifieke kleuren niet eenvoudig, maar HSV maakt het veel gemakkelijker om kleurbereiken in te stellen om specifieke kleuren te filteren zoals we die waarnemen.
Tint vertegenwoordigt de kleur in HSV, de tintwaarde varieert van 0 - 180 en niet 360, dus het maakt niet de volledige cirkel rond en wordt dus anders in kaart gebracht dan de standaard.
Kleurenfilters
- Rood - (165-15)
- Groen - (45-75)
- Blauw - (90-120)
Zoals we weten, worden de afbeeldingen opgeslagen in de RGB-kleurruimte (rood, groen en blauw) en dus laat OpenCV ons hetzelfde zien, maar het eerste dat we moeten onthouden over het RGB-formaat van opencv is dat het eigenlijk BGR is en we kunnen het weten door naar de afbeelding vorm.
import cv2 import numpy als np afbeelding = cv2.imread ('input.jpg') # B, G, R waarde voor de eerste 0,0 pixel B, G, R = afbeelding afdrukken (B, G, R) afdrukken (afbeelding.shape) #nu als we dit toepassen op grijswaardenafbeelding gray_img = cv2.cvtColor (afbeelding, cv2.COLOR_BGR2GRAY) print (gray_img.shape) #gray_image pixelwaarde voor afdruk van 10,50 pixels (grey_img)
Console-uitvoer: afdrukken (B, G, R) - 6 11 10
print (afbeelding.vorm) - (183, 275, 3)
print (grey_img.shape) - (183, 275)
print (grijs_img) - 69
Nu zijn er slechts twee dimensies in een grijsschaalafbeelding, aangezien we ons herinneren dat de kleurenafbeelding in drie dimensies is opgeslagen, waarbij de derde dimensie de (R, G, B) is, terwijl in grijsschaal slechts twee dimensies aanwezig zijn, aangezien (R, G, B) is afwezig en voor een bepaalde pixelpositie krijgen we maar één waarde, terwijl we in een gekleurde afbeelding drie waarden hebben.
Een andere nuttige kleurruimte is HSV
importeer cv2 image = cv2.imread ('input.jpg') hsv_image = cv2.cvtColor (image, cv2.COLOR_BGR2HSV) cv2.imshow ('HSV image', hsv_image) cv2.imshow ('Hue channel', hsv_image) cv2. imshow ('saturation channel', hsv_image) cv2.imshow ('value channel', hsv_image) cv2.waitKey () cv2.destroyAllWindows ()
Nadat u de code hebt uitgevoerd, kunt u de vier afbeeldingen zien waarvan drie van de afzonderlijke kanalen en één een gecombineerde HSV-afbeelding.
Het Hue-kanaalbeeld is vrij donker omdat de waarde slechts varieert van 0 tot 180.
Merk ook op dat de imshow- functie u de RGB- of BGR-afbeelding probeert te tonen, maar de HSV-conversie overlapt deze.
Ook zal het waardekanaal vanwege de helderheid vergelijkbaar zijn met de grijstinten van een afbeelding.
Het verkennen van individuele componenten van RGB-beeld
import cv2 image = cv2.imread ('input.jpg') # opencv's split-functie splitst de afbeelding in elke kleurindex B, G, R = cv2.split (afbeelding) cv2.imshow ("Red", R) cv2.imshow ("Groen", G) cv2.imshow ("Blauw", B) #de originele afbeelding maken door de afzonderlijke kleurcomponenten samen te voegen merged = cv2.merge () cv2.imshow ("merged", merged ) #amplificatie van de samengevoegde blauwe kleur = cv2.merge () cv2.imshow ("samengevoegd met blauw versterken", samengevoegd) #vertegenwoordigt de vorm van individuele kleurcomponenten. # de uitvoer zou slechts tweedimensionaal zijn, wat hoogte en breedte zou zijn, aangezien het derde element van de RGB-component afzonderlijk wordt weergegeven print (B.shape) print (R.vorm) print (G.shape) cv2.waitKey (0) cv2.destroyAllWindows ()
Console-uitvoer: #afmetingen van afbeelding van vormfunctie
(183, 275)
(183, 275)
(183, 275)
Afbeelding omzetten in individuele RGB-component
In onderstaande code hebben we een matrix van nullen gemaakt met de afmetingen van afbeelding HxW, zero return een array gevuld met nullen maar met dezelfde afmetingen.
De vormfunctie is erg handig als we naar de dimensie van een afbeelding kijken, en hier hebben we het opdelen van die vormfunctie gedaan. Dus de vorm zou alles tot aan de aangewezen punten grijpen, dwz tot aan de tweede aangewezen punten die de hoogte en breedte van de afbeelding zouden zijn, aangezien de derde de RGB-component van de afbeelding vertegenwoordigt en we hebben het hier niet nodig.
import cv2 import numpy als np image = cv2.imread ('input.jpg') B, G, R = cv2.split (afbeelding) nullen = np.zeros (image.shape, dtype = "uint8") cv2.imshow ("ROOD", cv2.merge ()) cv2.imshow ("Groen", cv2.merge ()) cv2.imshow ("Blauw", cv2.merge ()) cv2.waitKey (0) cv2.destroyAllWindows ()
Histogramweergave van afbeelding
Histogramweergave van een afbeelding is de methode om de componenten van afbeeldingen te visualiseren.
Met de volgende code kunt u de afbeelding analyseren via het kleurenhistogram van de gecombineerde en individuele kleurcomponenten.
import cv2 import numpy als np # we moeten matplotlib importeren om histogramplots te maken import matplotlib.pyplot als plt image = cv2.imread ('input.jpg') histogram = cv2.calcHist (,, None`` ) #we plot a histogram, ravel () maakt onze afbeeldingsarray vlak plt.hist (image.ravel (), 256,) plt.show () #afzonderlijke kleurkanalen bekijken color = ('b', 'g', 'r') #we weten scheid de kleur en plot elk in histogram voor i, col in enumerate (kleur): histogram2 = cv2.calcHist (,, None`` ) plt.plot (histogram2, color = col) plt.xlim () plt.show ()
Laten we de functie calcHist met elk van zijn individuele parameters begrijpen
cv2.calcHist (afbeeldingen, kanalen, masker, histsize , bereiken)
Afbeeldingen: het is de bronafbeelding van het type uint 8 of float 32. Het moet tussen vierkante haken worden vermeld, dwz "", wat ook de array op het tweede niveau aangeeft, aangezien een afbeelding voor opencv gegevens in een matrixvorm is.
Kanalen: staat ook tussen vierkante haken. Het is de kanaalindex waarvoor we het histogram berekenen, bijvoorbeeld als de invoer grijswaardenafbeelding is, is de waarde ervan, voor kleurenafbeeldingen die u kunt passeren, of om het histogram van respectievelijk blauw, groen en rood kanaal te berekenen.
Masker: maskerbeeld. om het histogram van het volledige beeld te vinden, wordt dit gegeven als "geen". maar als je het histogram van een bepaald beeldgebied wilt vinden, moet je daarvoor een maskerbeeld maken en het als masker geven.
Histsize: dit vertegenwoordigt onze BIN-telling. Moet tussen vierkante haken worden vermeld voor volledige schaal die we halen.
Reeksen: Dit is ons assortiment, normaal gesproken
Afbeeldingen en vormen tekenen met OpenCV
Hieronder staan enkele voorbeelden voor het tekenen van lijnen, rechthoek, polygoon, cirkel enz. In OpenCV.
import cv2 import numpy als np #creating a black square image = np.zeros ((512,512,3), np.uint8) #we kunnen dit ook in zwart-wit maken, maar er zouden geen wijzigingen zijn image_bw = np.zeros ((512,512), np.uint8) cv2.imshow ("zwarte rechthoek (kleur)", afbeelding) cv2.imshow ("zwarte rechthoek (B&W)", afbeelding_bw)
Lijn
#creëer een lijn over zwart vierkant # cv2.line (afbeelding, startcoördinaten, eindcoördinaten, kleur, dikte) #teken een diagonale lijn met een dikte van 5 pixels image = np.zeros ((512,512,3), np.uint8) cv2.line (afbeelding, (0,0), (511,511), (255,127,0), 5) cv2.imshow ("blauwe lijn", afbeelding)
Rechthoek
#creëer een rechthoek over een zwart vierkant # cv2.rectangle (afbeelding, startcoördinaten, eindcoördinaten, kleur, dikte) #teken een rechthoek met een dikte van 5 pixels image = np.zeros ((512,512,3), np.uint8) cv2.rectangle (afbeelding, (30,50), (100,150), (255,127,0), 5) cv2.imshow ("rechthoek", afbeelding)
Cirkel#cirkel over een zwart vierkant # cv2.circle (image, center, radius, color, fill) image = np.zeros ((512,512,3), np.uint8) cv2.circle (image, (100,100), (50), (255,127,0), - 1) cv2.imshow ("cirkel", afbeelding)
Veelhoek#creating a polygoon image = np.zeros ((512,512,3), np.uint8) #lets definieren vier punten pts = np.array (,,,], np.int32) #lets geven nu onze punten een nieuwe vorm in de vorm die vereist is door polylijnen pts = pts.reshape ((- 1,1,2)) cv2.polylines (afbeelding`` True, (0,255,255), 3) cv2.imshow ("polygoon", afbeelding)
Tekst#tekst invoeren met opencv # cv2.putText (afbeelding, 'tekst om weer te geven', startpunt links, lettertype, lettergrootte, kleur, dikte) afbeelding = np.zeros ((512,512,3), np.uint8) cv2. putText (afbeelding, "hallo wereld", (75,290), cv2.FONT_HERSHEY_COMPLEX, 2, (100,170,0), 3) cv2.imshow ("hallo wereld", afbeelding) cv2.waitKey (0) cv2.destroyAllWindows ()
Computer Vision en OpenCV zijn zeer uitgebreide onderwerpen om te behandelen, maar deze gids zou een goed startpunt zijn om OpenCV en beeldverwerking te leren.