Maison >Java >javaDidacticiel >Comment changer la luminosité d'une image à l'aide de la bibliothèque Java OpenCV ?
La méthode
convertTo() de la classe org.opencv.core.Mat effectue les calculs requis sur la matrice donnée pour modifier le contraste et la luminosité de l'image. Cette méthode accepte 4 arguments -
mat - une matrice vide pour contenir le résultat de même taille et type que la matrice source.
rtype - une valeur entière spécifiant le type de matrice de sortie. Si la valeur est négative, le type sera le même que la source.
alpha - valeur de gain, doit être supérieure à 0 (1 par défaut).
beta - valeur de biais (0 par défaut).
Comme mentionné ci-dessus, la valeur bêta transmise à cette méthode modifiera la luminosité de l'image Image, si la valeur choisie pour ce paramètre est négative (0 à -255), l'image sera moins lumineuse. De même, si elle est supérieure à 0 (0 à 255), la luminosité de l'image augmente.
Pour modifier le contraste d'une image, appelez la méthode convertTo() en passant une matrice vide, -1 (pour obtenir le même type), 1 comme valeur alpha et la valeur bêta pour augmenter ou diminuer la luminosité .
import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.imgcodecs.Imgcodecs; public class AlteringBrightness { public static void main (String[] args) { //Loading the OpenCV core library System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); //Reading the Image from the file String file ="D:\Images\tiger.jpg"; Mat src = Imgcodecs.imread(file, Imgcodecs.IMREAD_COLOR); //Creating an empty matrix Mat dest = new Mat(src.rows(), src.cols(), src.type()); //Increasing the brightness of an image src.convertTo(dest, -1, 1, 100); // Writing the image Imgcodecs.imwrite("D:\Images\altering_brightness_100.jpg", dest); } }
Vous trouverez ci-dessous différentes images de sortie pour différentes valeurs alpha -
α valeur : -100
α valeur : -50
α valeur : 50
α valeur : 100
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!