Quel est le moyen le plus rapide d’augmenter le contraste des images couleur avec OpenCV en python (cv2)?
Je suis en utilisant OpenCV pour le traitement de certaines images, et l'une des premières étapes que j'ai besoin d'effectuer augmente le contraste de l'image sur une image en couleur. La méthode la plus rapide que j'ai trouvé jusqu'à présent utilise ce code (où np est le numpy import) de se multiplier et d'ajouter, comme le suggère le C d'origine à base de cv1 docs:
if (self.array_alpha is None):
self.array_alpha = np.array([1.25])
self.array_beta = np.array([-100.0])
# add a beta value to every pixel
cv2.add(new_img, self.array_beta, new_img)
# multiply every pixel value by alpha
cv2.multiply(new_img, self.array_alpha, new_img)
Est-il un moyen plus rapide de le faire en Python? J'ai essayé d'utiliser numpy du scalaire au lieu de multiplier, mais la performance est en fait pire. J'ai aussi essayé d'utiliser cv2.convertScaleAbs
(OpenCV docs a suggéré d'utiliser convertTo
mais cv2 semble manquer d'une interface de cette fonction) mais encore une fois, la performance est de pire en phase de test.
source d'informationauteur Todd Stellanova
Vous devez vous connecter pour publier un commentaire.
Arithmétique Simple dans les tableaux numpy est le plus rapide, comme Abid Rahaman K commenté.
Utilisation de cette image par exemple: http://i.imgur.com/Yjo276D.png
Ici est un peu de traitement d'image qui ressemble à de la luminosité/contraste de manipulation:
D'origine de l'image en niveaux de gris:
Égayé image qui semble être dilatée:
Assombri l'image qui apparaît érodée, aiguisé, avec un meilleur contraste:
Comment les intensités des pixels sont transformés:
Si vous jouez avec les valeurs de
phi
ettheta
vous pouvez obtenir de très intéressants résultats. Vous pouvez également mettre en place cette astuce pour les données d'image.--- EDIT ---
avoir un regard sur les concepts de "niveaux" et "courbes" sur cette vidéo sur youtube montrant d'édition d'image dans photoshop. L'équation de la transformation linéaire crée le même montant, c'est à dire de "niveau" de l'évolution sur chaque pixel. Si vous écrivez une équation qui permet de distinguer entre les types de pixels (par exemple, celles qui sont déjà d'une certaine valeur), alors vous pouvez changer les pixels basé sur la "courbe" décrite par l'équation.
Essayez ce code:
Coucher de soleil avant:
Coucher de soleil après une augmentation du contraste: