Java DIP - Poprawianie jasności obrazu
W tym rozdziale poprawiamy jasność obrazu, mnożąc każdy piksel obrazu przez wartość alfa i dodając do niego kolejną wartość beta.
My OpenCV funkcjonować convertToto wykonuje powyższą operację automatycznie. Można go znaleźć podMatpakiet. Jego składnia jest podana poniżej -
int alpha = 2;
int beta = 50;
sourceImage.convertTo(destination, rtype , alpha, beta);
Parametry opisano poniżej -
Sr.No. | Parametr i opis |
---|---|
1 | destination To jest obraz docelowy. |
2 | rtype Jest to pożądany typ macierzy wyjściowej, a raczej głębokość, ponieważ liczba kanałów jest taka sama jak na wejściu. jeśli rtype jest ujemny, macierz wyjściowa będzie miała ten sam typ co wejście. |
3 | alpha Jest to opcjonalny współczynnik skali. |
4 | beta Jest to opcjonalna delta dodawana do skalowanych wartości. |
Oprócz metody convertTo istnieją inne metody udostępniane przez klasę Mat. Są one krótko opisane -
Sr.No. | Metoda i opis |
---|---|
1 | adjustROI(int dtop, int dbottom, int dleft, int dright) Dostosowuje rozmiar i położenie podmacierzy w macierzy macierzystej. |
2 | copyTo(Mat m) Kopiuje matrycę do innej. |
3 | diag() Wydobywa przekątną z macierzy lub tworzy matrycę przekątną. |
4 | dot(Mat m) Oblicza iloczyn skalarny dwóch wektorów. |
5 | reshape(int cn) Zmienia kształt i / lub liczbę kanałów macierzy 2D bez kopiowania danych. |
6 | submat(Range rowRange, Range colRange) Wydobywa prostokątną matrycę pomocniczą. |
Przykład
Poniższy przykład demonstruje użycie klasy Mat w celu zwiększenia jasności obrazu -
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());
}
}
}
Wynik
Po wykonaniu podanego kodu widoczne są następujące dane wyjściowe -