Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

Mennesker kan skelne omkring 10 millioner farver. For at opfatte dem kræver du noget kendt som en farvepalet. En farvepalet indeholder værktøjerne til at vise hele rækken af ​​farver, der er synlige for det menneskelige øje. I den virkelige verden bruger du dem til at skabe æstetiske designs på papir, mens du digitalt bruger dem til at tilføje farve til skærmelementer.

I sidste ende koder din computer alle de forskellige nuancer, du ser på din skærm, ved hjælp af et bestemt format. Med Python kan du udvikle en RGB-kodet farvepalet på blot et par linjer kode takket være OpenCV og NumPy-modulet.

OpenCV og NumPy-modulet

Du kan analysere billeder og videoer ved hjælp af OpenCV. Det er gratis, open source, nemt at bruge og spækket med nyttige biblioteker. Disse giver teknikker til at klassificere, lokalisere og spore objekter i både to og tre dimensioner. For at installere OpenCV i dit miljø skal du åbne en terminal og køre:

instagram viewer
pip installer opencv-python

NumPy-modulet er et andet populært bibliotek, du vil se mange Python-programmer bruge. NumPy – numerisk Python – er et modul, du kan bruge til dataanalyse og videnskabelig databehandling. Det giver n-dimensionelle array-objekter såvel som matematiske operationer som hjælper med at manipulere disse arrays.

For at installere NumPy i dit miljø skal du udføre:

pip install numpy

Generelt vil du bruge OpenCV til at behandle billeder ved hjælp af teknikker som kantdetektion. Du kan derefter bruge NumPy til at udføre dataanalyse på det behandlede billede. Ved at bruge denne kombination kan du oprette og afkode en QR-kode, klassificere billeder, udføre optisk tegngenkendelse og bygge videoovervågningssystemer, der kan registrere bevægelse og spore individer i realtid.

Sådan bygger du en farvepalet ved hjælp af Python

Følg disse trin for at bygge en farvepalet ved hjælp af OpenCV og NumPy-modulet i Python.

Du kan finde kilden til farvepaletten ved hjælp af Python i denne GitHub depot.

Begynd med at importere OpenCV- og NumPy-modulerne. Definer en funktion med navn tommefunktion() der indeholder beståelseserklæringen. Beståelseserklæringen fungerer som en pladsholder for kode, du kan skrive i fremtiden. Dette er især nyttigt med funktioner som createTrackbar, som du vil bruge senere. Det kræver en gyldig tilbagekaldsfunktion, og du kan sende emptyFunction som pladsholder indtil videre.

importere cv2
importere nusset som np

deftommefunktion():
passere

Generer et tredimensionelt array med størrelsen 512 * 512 * 3 med en datatype uint8 ved hjælp af NumPy's nul() fungere. Hvert array vil bestå af 512 kolonner og 512 rækker. uint8 repræsenterer et heltal uden fortegn, så programmet fylder arrayet med nuller.

billede = np.zeros((512, 512, 3), np.uint8)

Indstil navnet på det vindue, programmet skal vise, og send det til namedWindow() funktion til at oprette et vindue:

vinduesnavn = "OpenCV farvepalet"
cv2.namedWindow (windowName)

Generer derefter tre sporbjælker for de røde, grønne og blå farvekomponenter. Du kan gøre dette ved at bruge OpenCV'er createTrackbar() fungere. Først skal du sende etiketten som rød, blå eller grøn. For det andet skal du videregive navnet på det vindue, hvor du vil placere disse bjælker, f.eks. vinduesnavn.

Den tredje parameter er minimumsgrænsen for sporbjælken, 0 i dette tilfælde. Den fjerde parameter angiver den maksimale værdi, som er 255 for en 24-bit farveværdi. Den femte og sidste parameter er en tilbagekaldsfunktion, som createTrackbar kræver en gyldig funktion for. Dette er grunden til, at du oprettede emptyFunction tidligere for at fungere som en pladsholder.

cv2.createTrackbar('Blå', vinduesnavn, 0, 255, tommefunktion)
cv2.createTrackbar('Grøn', vinduesnavn, 0, 255, tommefunktion)
cv2.createTrackbar('Rød', vinduesnavn, 0, 255, tommefunktion)

Erklær en uendelig mens-løkke og send vinduesnavnet sammen med det billede, du vil vise, til OpenCV'er imshow() fungere. Da billedet indeholder et tredimensionelt array af nuller, viser programmet i begyndelsen en sort skærm.

Tjek om brugeren har trykket på escape-tasten ved at teste værdien fra ventetast() mod 27 (ASCII-koden for Escape-tasten). Waitkey()-funktionen viser vinduet i det givne antal millisekunder, eller indtil du trykker på en tast. Ved at sende en som input, viser den vinduet i et millisekund, men regenererer på grund af den uendelige while-løkke.

For at få den aktuelle position af sporbjælken skal du videregive navnet på sporbjælken sammen med navnet på vinduet til getTrackbarPos(). Gentag dette trin for de tre separate farvekomponenter, blå, grøn og rød. Brug udsnitsoperatoren til at tildele de tre værdier til billedarrayet. Dette vil erstatte det tidligere sæt værdier, i første omgang alle nuller, med de aktuelle værdier i henhold til sporbjælkens positioner.

mens (Rigtigt):
cv2.imshow (vinduesnavn, billede)

hvis cv2.waitKey(1) == 27:
pause

blå = cv2.getTrackbarPos('Blå', vinduesnavn)
grøn = cv2.getTrackbarPos('Grøn', vinduesnavn)
rød = cv2.getTrackbarPos('Rød', vinduesnavn)
billede[:] = [blå, grøn, rød]
print (blå, grøn, rød)

Når brugeren trykker på Escape-tasten, skal du bruge ødelægge Alle Windows() for at lukke de vinduer, programmet åbnede:

cv2.destroyAllWindows()

Til sidst skal du sætte det hele sammen og køre det for at kontrollere og se din farvepalet.

Outputtet fra Python Color Palette-programmet

Når du kører programmet ovenfor, vises et vindue, der indeholder tre sporbjælker for farverne blå, grøn og rød. Sporbjælkerne bevæger sig fra et område på 0 til 255. Når du varierer værdierne for de forskellige søjler, bør du se forskellige nuancer af farver i afsnittet nedenfor.

I dette første eksempel kan du se indstillingen af ​​den blå bjælke som 0, Grøn som 69 og Rød som 255. Den resulterende outputfarve er en nuance af orange/rød. Derudover viser terminalvinduet farveværdierne som 0 69 255.

På samme måde, når du indstiller den blå bjælke til 130, Grøn som 0 og Rød som 75, får du en Indigo-farve.

De forskellige applikationer af OpenCV

OpenCV tilbyder værdifulde funktioner til opgaver som billedbehandling, objektgenkendelse, ansigtsgenkendelse og sporing. Ved at bruge OpenCV kan du producere computervisionsapplikationer i realtid, der ville være en velsignelse inden for områder som robotteknologi, industriel automation, medicinsk billeddannelse og overvågningssystemer.

Fremtiden for computervision er lovende. Du vil være i stand til at bruge computersyn til at hjælpe synshandicappede, give bedre vækst i landbruget, øge trafiksikkerheden ved at bruge selvkørende biler og endda navigere på andre planeter som Mars.