Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Mensen kunnen ongeveer 10 miljoen kleuren onderscheiden. Om ze waar te nemen, heb je iets nodig dat bekend staat als een kleurenpalet. Een kleurenpalet bevat de hulpmiddelen om het volledige kleurenbereik weer te geven dat zichtbaar is voor het menselijk oog. In de echte wereld gebruik je ze om esthetische ontwerpen op papier te maken, terwijl je ze digitaal gebruikt om kleur toe te voegen aan schermelementen.

Uiteindelijk codeert uw computer alle verschillende tinten die u op uw scherm ziet in een bepaald formaat. Met Python kun je een RGB-gecodeerd kleurenpalet ontwikkelen in slechts een paar regels code dankzij de OpenCV- en NumPy-module.

De OpenCV- en NumPy-module

U kunt afbeeldingen en video's analyseren met behulp van OpenCV. Het is gratis, open source, eenvoudig te gebruiken en zit boordevol handige bibliotheken. Deze bieden technieken voor het classificeren, lokaliseren en volgen van objecten in zowel twee als drie dimensies. Om OpenCV in uw omgeving te installeren, opent u een terminal en voert u het volgende uit:

instagram viewer

pip installeer opencv-python

De NumPy-module is een andere populaire bibliotheek die veel Python-programma's zullen gebruiken. NumPy, numerieke Python, is een module die u kunt gebruiken voor gegevensanalyse en wetenschappelijke berekeningen. Het biedt zowel n-dimensionale array-objecten als wiskundige operaties die helpen bij het manipuleren van deze arrays.

Voer het volgende uit om NumPy in uw omgeving te installeren:

pip installeer numpy

Over het algemeen gebruikt u OpenCV om afbeeldingen te verwerken met behulp van technieken zoals randdetectie. Vervolgens kunt u NumPy gebruiken om gegevensanalyse uit te voeren op de verwerkte afbeelding. Met deze combinatie kan het maak en decodeer een QR-code, classificeer afbeeldingen, voer optische karakterherkenning uit en bouw videobewakingssystemen die beweging kunnen detecteren en personen in realtime kunnen volgen.

Hoe een kleurenpalet te bouwen met behulp van Python

Volg deze stappen om een ​​kleurenpalet te bouwen met behulp van de OpenCV- en NumPy-module in Python.

Hierin vind je de bron van Color Palette Using Python GitHub opslagplaats.

Begin met het importeren van de OpenCV- en NumPy-modules. Definieer een functie met de naam leegfunctie() die de pass-verklaring bevat. De pass-verklaring fungeert als tijdelijke aanduiding voor code die u in de toekomst kunt schrijven. Dit is vooral handig met functies zoals createTrackbar, die u later zult gebruiken. Het vereist een geldige callback-functie en u kunt voor nu emptyFunction doorgeven als tijdelijke aanduiding.

importeren cv2
importeren onnozel als np

deflegeFunctie():
doorgang

Genereer een driedimensionale array van grootte 512 * 512 * 3 met een gegevenstype van uint8 met behulp van NumPy's nul() functie. Elke array bestaat uit 512 kolommen en 512 rijen. uint8 vertegenwoordigt een niet-ondertekend geheel getal, dus het programma vult de array met nullen.

afbeelding = np.nullen((512, 512, 3), np.uint8)

Stel de naam in van het venster dat het programma zal weergeven en geef het door aan het genaamdWindow() functie om een ​​venster te maken:

vensterNaam = "OpenCV-kleurenpalet"
cv2.namedWindow (vensternaam)

Genereer vervolgens drie spoorbalken voor de rode, groene en blauwe kleurcomponenten. U kunt dit doen met behulp van OpenCV's createTrackbar() functie. Geef eerst het label door als rood, blauw of groen. Ten tweede moet u de naam doorgeven van het venster waar u deze balken bijvoorbeeld wilt plaatsen, windowName.

De derde parameter is de minimumlimiet van de trackbar, in dit geval 0. De vierde parameter specificeert de maximale waarde, namelijk 255 voor een 24-bits kleurwaarde. De vijfde en laatste parameter is een callback-functie waarvoor createTrackbar een geldige functie nodig heeft. Dit is de reden waarom u eerder emptyFunction hebt gemaakt om als tijdelijke aanduiding te fungeren.

cv2.createTrackbar('Blauw', vensternaam, 0, 255, lege functie)
cv2.createTrackbar('Groente', vensternaam, 0, 255, lege functie)
cv2.createTrackbar('Rood', vensternaam, 0, 255, lege functie)

Declareer een oneindige while-lus en geef de vensternaam samen met de afbeelding die u wilt weergeven door aan OpenCV's imshow() functie. Omdat de afbeelding een driedimensionale reeks nullen bevat, geeft het programma aanvankelijk een zwart scherm weer.

Controleer of de gebruiker op de escape-toets heeft gedrukt door de waarde van te testen wachttoets() tegen 27 (de ASCII-code voor de Escape-toets). De functie waitkey() geeft het venster weer gedurende het opgegeven aantal milliseconden of totdat u op een toets drukt. Door er een als invoer door te geven, wordt het venster gedurende een milliseconde weergegeven, maar wordt het opnieuw gegenereerd vanwege de oneindige while-lus.

Om de huidige positie van de trackbar te krijgen, geeft u de naam van de trackbar samen met de naam van het venster door aan getTrackbarPos(). Herhaal deze stap voor de drie afzonderlijke kleurcomponenten, blauw, groen en rood. Gebruik de slice-operator om de drie waarden toe te wijzen aan de afbeeldingsmatrix. Dit vervangt de vorige reeks waarden, in eerste instantie allemaal nullen, door de huidige waarden volgens de posities van de volgbalk.

terwijl (WAAR):
cv2.imshow (vensternaam, afbeelding)

als cv2.waitKey(1) == 27:
pauze

blauw = cv2.getTrackbarPos('Blauw', vensternaam)
groen = cv2.getTrackbarPos('Groente', vensternaam)
rood = cv2.getTrackbarPos('Rood', vensternaam)
afbeelding[:] = [blauw, groen, rood]
print (blauw, groen, rood)

Zodra de gebruiker op de Escape-toets drukt, gebruikt u vernietigAlleWindows() om de vensters te sluiten die het programma heeft geopend:

cv2.destroyAllWindows()

Voeg ten slotte alles samen en voer het uit om uw kleurenpalet te controleren en te bekijken.

De uitvoer van het Python-kleurenpaletprogramma

Bij het uitvoeren van het bovenstaande programma verschijnt er een venster met drie trackbalken voor de kleuren Blauw, Groen en Rood. De trackbars bewegen van een bereik van 0 tot 255. Wanneer u de waarden van de verschillende balken varieert, zou u in het onderstaande gedeelte verschillende kleurschakeringen moeten zien.

In dit eerste voorbeeld ziet u de instelling van de blauwe balk als 0, groen als 69 en rood als 255. De resulterende uitvoerkleur is een tint oranje/rood. Bovendien geeft het terminalvenster de kleurwaarden weer als 0 69 255.

Evenzo, wanneer u de blauwe balk instelt op 130, groen op 0 en rood op 75, krijgt u een indigokleur.

De verschillende toepassingen van OpenCV

OpenCV biedt waardevolle functies voor taken als beeldverwerking, objectherkenning, gezichtsherkenning en tracking. Met behulp van OpenCV kunt u real-time computervisietoepassingen produceren die een zegen zouden zijn op gebieden als robotica, industriële automatisering, medische beeldvorming en bewakingssystemen.

De toekomst van computervisie is veelbelovend. U kunt computervisie gebruiken om blinden en slechtzienden te helpen, een betere groei in de landbouw te realiseren, de verkeersveiligheid te verbeteren met zelfrijdende auto's en zelfs op andere planeten te navigeren, zoals Mars.