[OpenCV] Mémo personnel

Conclusion

Trouvez la valeur intermédiaire du HSV

Un style qui n'ose pas utiliser les expressions d'inclusion


import cv2
import numpy as np

image = cv2.imread('./testimages/test.jpg') #Lecture de fichiers

#Extraction de couleur avec HSV
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV_FULL) #Convertir l'image en HSV
hue = hsv[:, :, 0]#Hue Hue
sat = hsv[:, :, 1]#Saturation Saturation
val = hsv[:, :, 2]#Valeur de légèreté
print(hue, sat, val)
print(hue.shape, sat.shape, val.shape)
print(hue[0], sat[0], val[0])

##Trouvez la valeur intermédiaire de la teinte
h_num = []
for h in hue:
    for hn in h:
        h_num.append(hn)
ave_h = sum(h_num)/len(h_num)
print(ave_h)

##Trouver la valeur intermédiaire de la saturation
s_num = []
for s in sat:
    for sn in s:
        s_num.append(sn)
ave_s = sum(s_num)/len(s_num)
print(ave_s)

##Trouvez la valeur intermédiaire de la légèreté
v_num = []
for v in val:
    for vl in v:
        v_num.append(vl)
ave_v = sum(v_num)/len(v_num)
print(ave_v)

Processus d'acquisition Edge

import numpy as np
import cv2

img_BGR = cv2.imread("./testimages/test.jpg ")

img_Lab = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2Lab)
img_Lab_L, img_Lab_a, img_Lab_b = cv2.split(img_Lab)

cv2.imshow("pic", img_Lab_a)
cv2.waitKey(0)
cv2.destroyAllWindows()

min_val = 30
max_val = 70
img_canny = cv2.Canny(img_Lab_a, min_val, max_val)
cv2.imshow("pic", img_canny)
cv2.waitKey(0)
cv2.destroyAllWindows()
#cv2.imwrite('out.jpg', img_canny)

Convertir de la photo au style de bande dessinée

Préparation de screen.jpg screen.jpg

import cv2
import time
import numpy as np

#cap = cv2.VideoCapture(0)

#Seuil de tribalisation * Ajustez la valeur vous-même
th1, th2 = 60, 60

#r, img = cap.read()
img = cv2.imread("./testdir/test.jpg ")

#Obtenir l'image d'entrée en échelle de gris
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#Chargement de l'image à l'écran
screen = cv2.imread("screen.jpg ", 0)
#Redimensionnement de l'image à l'écran
screen = cv2.resize(screen, (gray.shape[1], gray.shape[0]))
#Détection des bords et inversion des couleurs
edge = 255 - cv2.Canny(gray, 80, 120)
#Tribalisation des images
gray[gray <= th1] = 0
gray[gray >= th2] = 255
gray[np.where((gray > th1) & (gray < th2))] = screen[np.where((gray > th1) & (gray < th2))]

#Faire correspondre l'image ternaire et l'image de bord
gray = cv2.bitwise_and(gray, edge)

#Enregistrer l'image
cv2.imwrite("Sample.jpg ", gray)

Recommended Posts

[OpenCV] Mémo personnel
installation de python openCV (mémo)
Mémo du didacticiel Python OpenCV
[Mémo personnel] Achèvement automatique du bash
Comment utiliser cron (mémo personnel)
Commandes Linux fréquemment utilisées [Personal Memo]
[Mémo personnel] Mémo de commande d'environnement virtuel Python
Confirmation de la réponse impulsive (mémo personnel)
[OpenCV] Identification personnelle avec photo du visage
[Note personnelle] Type de séquence / type de mappage Python
commande find / grep (mémo personnel du débutant)
mémo gzip
Mémo Pandas
Mémo HackerRank
Mémo Python
mémo python
mémo graphène
Mémo du flacon
mémo pyenv
Mémo Matplotlib
mémo pytest
mémo sed
Mémo Python
Installer Memo
Mémo BeautifulSoup4
mémo networkx
mémo python
mémo Tomcat
mémo de commande
Mémo du générateur.
mémo psycopg2
Mémo Python
Mémo SSH
Télécharger le fichier XBRL depuis EDINET (mémo personnel)
Mémo: rtl8812
Génération automatique Powerpo avec python-pptx (mémo personnel)
mémo pandas
Mémo Shell
Mémo Python
Mémo Pycharm
[Personal memo] julia --Utiliser la bibliothèque Python avec Julia en utilisant PyCall
[Mémo personnel] L'installation de Pip échoue, résolvez-le