Je souhaite corriger ma luminosité inégale/luminosité de toutes mes images (dans l'espoir d'obtenir toute la luminosité). Après avoir obtenu la différence de canal de luminosité pour mes images en boucle à mes images de référence. J'ajoute la différence et la sauvegarde sur de nouvelles images ... cependant, après avoir vérifié les nouvelles images, j'ai réalisé que j'avais encore une luminosité inégale ... Y at-il quelque chose qui ne va pas avec mon code? Toute aide ou correction est appréciée. J'ai essayé ce code sur les espaces de couleurs LAB et HSV, toujours les mêmes. Voici le code et quelques résultats que j'ai obtenus.OpenCV_Python: Lightness Channel Manipulation, Essayer d'obtenir la même luminosité pour toutes les images
from PIL import Image
import numpy as np
import cv2
path = 'R:\\Temp\\zzzz\\AlignedPhoto_in_PNG\\'
path1 = 'R:\\Temp\\zzzz\\Testing1\\'
img = cv2.imread(path + 'aligned_IMG_1770.png')
img = cv2.cvtColor(img, cv2.COLOR_BGR2LAB)
a = np.mean(img[:,:,0])
for i in range (1770,1869):
img1 = cv2.imread(path + 'aligned_IMG_%d.png'%(i))
img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2LAB)
img1[:,:,0], img1[:,:,1], img1[:,:,2] = cv2.split(img1)
print(img1[:,:,0])
b = np.mean(img1[:,:,0])
diff= b-a
print(diff)
img1[:,:,0] = img1[:,:,0] + diff
img1 = cv2.merge([img1[:,:,0], img1[:,:,1], img1[:,:,2]])
print(img1[:,:,0])
img1 = cv2.cvtColor(img1, cv2.COLOR_LAB2BGR)
cv2.imwrite(path1 + 'Testing1_%d.png'%(i), img1)
En outre, aucune indication sur la façon dont je peux modifier le code existant pour vous assurer après avoir ajouté la différence, la nouvelle valeur ne dépasse pas la plage max/min de Légèreté Channel LAB ou la plage max/min de Chaîne de valeur dans HSV? Je ai réalisé après l'addition si la nouvelle valeur est> 255, la valeur de commencer à compter à partir de 1. Je ai cherché sur comment résoudre ce problème ou définir la gamme, mais je ne sais pas comment le faire
Voici quelques images résultat que j'ai eu du code ci-dessus. J'espère que cela aidera à identifier ce qui n'a pas fonctionné avec mon code car je reçois encore une luminosité inégale pour les nouvelles images après avoir ajouté la différence.
[[ 39 39 39 ..., 38 38 36]
[ 39 38 39 ..., 39 39 39]
[ 40 40 40 ..., 39 39 39]
...,
[119 119 122 ..., 165 166 167]
[118 118 120 ..., 169 166 166]
[115 116 117 ..., 175 169 167]]
0.0
[[ 39 39 39 ..., 38 38 36]
[ 39 38 39 ..., 39 39 39]
[ 40 40 40 ..., 39 39 39]
...,
[119 119 122 ..., 165 166 167]
[118 118 120 ..., 169 166 166]
[115 116 117 ..., 175 169 167]]
[[ 0 0 0 ..., 0 0 0]
[ 0 0 0 ..., 0 0 0]
[ 0 0 0 ..., 0 0 0]
...,
[117 119 119 ..., 165 163 131]
[117 117 118 ..., 170 166 131]
[115 116 116 ..., 176 171 134]]
-1.48181156101
[[255 255 255 ..., 255 255 255]
[255 255 255 ..., 255 255 255]
[255 255 255 ..., 255 255 255]
...,
[115 117 117 ..., 163 161 129]
[115 115 116 ..., 168 164 129]
[113 114 114 ..., 174 169 132]]
[[ 0 0 0 ..., 0 0 0]
[ 0 0 0 ..., 0 0 0]
[ 0 0 0 ..., 0 0 0]
...,
[ 0 97 115 ..., 165 164 165]
[ 0 96 114 ..., 169 166 164]
[ 0 95 113 ..., 175 170 166]]
-3.69765536832
[[253 253 253 ..., 253 253 253]
[253 253 253 ..., 253 253 253]
[253 253 253 ..., 253 253 253]
...,
[253 93 111 ..., 161 160 161]
[253 92 110 ..., 165 162 160]
[253 91 109 ..., 171 166 162]]
ne pense pas trop compliqué. si vous calculez un décalage et que vous obtenez des résultats erronés. la première chose à faire est de vérifier votre calcul de décalage en utilisant un exemple. ou simplement penser ce qui se passerait si un est plus lumineux que b .... ne fais pas penser à d 'autres personnes – Piglet
@Piglet le diff sera diff = a - b même si je prends ma première luminosité d' images qui est une as ma valeur de luminosité de référence? – SacreD
@Piglet je ne comprends toujours pas comment régler le plafond pour pixel à l'intérieur de la gamme de canaux .... vraiment tout exemple est vraiment utile pour moi dans la compréhension et l'apprentissage. J'ai appris le plus par l'exemple/pratique comme parfois je ne comprends pas quand je lis la documentation ou la théorie – SacreD