J'ai pris un congé annuel il y a quelque temps et j'ai fait un long voyage avec ma petite amie. J'étais de bonne humeur et j'ai apprécié les magnifiques paysages en chemin, mais j'étais aussi très fatigué, surtout après ne pas m'être bien reposé pendant plusieurs jours. et devoir voyager jusqu'à la maison.
Qui aurait pensé que dès que je rentrerais chez moi et que j'étais sur le point de me reposer, je recevrais ce message :
De façon inattendue, elle a pris deux cents photos en quatre jours.
C'est un peu embarrassant pour moi : premièrement, mon travail actuel ne nécessite pas de découpe d'images, et PS a été désinstallé il y a longtemps. Deuxièmement, même si j'ai PS, il faudra un certain temps pour y appliquer les préréglages. des centaines de photos. C’est de la torture rien que de penser à être fatigué, à avoir sommeil et à devoir faire des choses.
J'étais un peu perdu, alors j'ai regardé ces photos en y réfléchissant :
Comme la qualité des photos originales n'est pas mauvaise, donc si vous voulez les retoucher, vous n'avez pas besoin faire beaucoup. Parce qu'il y avait beaucoup de nuages ce jour-là, la lumière n'était pas très bonne, et la couleur des photos était un peu terne... Si elle est terne, vous pouvez augmenter la saturation de manière appropriée et réduire la luminosité pour obtenir un effet un peu terne. bonne photo.
À ce moment-là, je me suis soudainement souvenu d'une API que j'avais utilisée en regardant OpenCV il y a quelque temps. Avec l'aide de python, nous pourrions peut-être traiter rapidement ces centaines d'images.
Tout d'abord, présentons le HSV. Le HSV est un espace colorimétrique Contrairement au RVB, qui décrit les couleurs à travers une combinaison de rouge, de vert et de bleu, le HSV divise les couleurs en teinte (H), saturation (S) et valeur (V). Dimension, qui peut exprimer plus directement la luminosité et la vivacité des couleurs, elle est donc largement utilisée dans le domaine de la reconnaissance d'images.
Avec l'aide de la fonction split() d'opencv, nous pouvons séparer les variables HSV de l'image, puis utiliser la fonction merge() pour synthétiser une nouvelle image après modification, afin d'obtenir l'effet de modification par lots de saturation et la luminosité. En même temps, split() peut également séparer les trois canaux de couleur RVB de l'image, puis modifier un canal indépendamment.
Sans plus tard, commençons l'opération :
import cv2 import numpy as np import os def modify_image(img_path, target_dir): # 读取全部Je voyageais avec ma copine pendant trois jours, et Python a guéri mon insuffisance mentale... pic = cv2.imread(img_path, cv2.IMREAD_UNCHANGED) # 将Je voyageais avec ma copine pendant trois jours, et Python a guéri mon insuffisance mentale...修改为HSV pichsv = cv2.cvtColor(pic, cv2.COLOR_BGR2HSV) # 提取饱和度和明度 H,S,V = cv2.split(pichsv) # S为饱和度,V为明度 new_pic = cv2.merge([np.uint8(H), np.uint8(S*1.4), np.uint8(V*0.9)]) # 将合并后的Je voyageais avec ma copine pendant trois jours, et Python a guéri mon insuffisance mentale...重置为RGB pictar = cv2.cvtColor(new_pic, cv2.COLOR_HSV2BGR) # 获取原文件名 file_name = img_path.split("/")[-1] # 将Je voyageais avec ma copine pendant trois jours, et Python a guéri mon insuffisance mentale...写入目录 cv2.imwrite(os.path.join(target_dir, file_name), pictar) root, dirs, files = next(os.walk("./test/")) for item in files: img_path = os.path.join(root,item) process_image(img_path, "./target/")
Trois clics, cinq et deux divisent pour obtenir le code D'un simple coup d'œil au téléphone, des centaines de photos ont été traitées. Le côté gauche est avant modification, et le côté droit est après modification. Vous pouvez voir que l'effet est toujours très évident et la couleur est beaucoup plus complète.
J'ai terminé toutes les photos en quelques minutes. Ma copine avait l'air incrédule, mais elle était très satisfaite du résultat. Bien sûr, je ne lui dirai pas comment j'ai fait.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!