Java DIP - Melhorando o brilho da imagem
Neste capítulo, aumentamos o brilho de uma imagem multiplicando cada pixel da imagem por um valor alfa e adicionando outro valor beta a ele.
Nós OpenCV função convertToisso faz a operação acima automaticamente. Pode ser encontrado emMatpacote. Sua sintaxe é fornecida abaixo -
int alpha = 2;
int beta = 50;
sourceImage.convertTo(destination, rtype , alpha, beta);
Os parâmetros são descritos abaixo -
Sr. Não. | Parâmetro e Descrição |
---|---|
1 | destination É uma imagem de destino. |
2 | rtype É o tipo de matriz de saída desejada, ou melhor, a profundidade, já que o número de canais é igual ao da entrada. se rtype for negativo, a matriz de saída terá o mesmo tipo da entrada. |
3 | alpha É um fator de escala opcional. |
4 | beta É delta opcional adicionado aos valores em escala. |
Além do método convertTo, existem outros métodos fornecidos pela classe Mat. Eles são descritos resumidamente -
Sr. Não. | Método e Descrição |
---|---|
1 | adjustROI(int dtop, int dbottom, int dleft, int dright) Ele ajusta o tamanho e a posição de uma submatriz na matriz pai. |
2 | copyTo(Mat m) Copia a matriz para outra. |
3 | diag() Ele extrai uma diagonal de uma matriz ou cria uma matriz diagonal. |
4 | dot(Mat m) Ele calcula um produto escalar de dois vetores. |
5 | reshape(int cn) Ele muda a forma e / ou o número de canais de uma matriz 2D sem copiar os dados. |
6 | submat(Range rowRange, Range colRange) Ele extrai uma submatriz retangular. |
Exemplo
O exemplo a seguir demonstra o uso da classe Mat para aumentar o brilho de uma imagem -
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;
public class Main {
static int width;
static int height;
static double alpha = 2;
static double beta = 50;
public static void main( String[] args ) {
try{
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
Mat source = Highgui.imread("digital_image_processing.jpg",Highgui.CV_LOAD_IMAGE_COLOR);
Mat destination = new Mat(source.rows(),source.cols(),
source.type());
source.convertTo(destination, -1, alpha, beta);
Highgui.imwrite("brightWithAlpha2Beta50.jpg", destination);
} catch (Exception e) {
System.out.println("error:" + e.getMessage());
}
}
}
Resultado
Quando você executa o código fornecido, a seguinte saída é vista -