home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

Helligkeit

Unter dem Begriff Helligkeit versteht man die visuelle Wahrnehmung von sichtbarem Licht, welches durch objektive Messgrößen und subjektive Eindrücke ausgedrückt wird.

Wird in einem Bildpunkt zu jedem der drei Werte eine konstante Zahl hinzugefügt oder abgezogen, so wird der Pixel heller bzw. dunkler. Wendet man dies auf alle Pixel eines Bildes an, kann man dessen gesamte Helligkeit verändern.

public int calculateBrightness(int pixel) {
	int newColor = changeValue(pixel, brightness);
	return newColor;
}

Kontrast

Der Kontrast ist ein Unterscheidungsmerkmal für den Helligkeitsverlauf eines Bildes, oder zwischen zwei Bildpunkten.

Um den Kontrast verändern zu können muss zunächst der mittlere Kontrast des gesamten Bildes berechnet werden. Hierzu wird ein Mittelwert aus den Werten R, G und B des Bildes ermittelt. Dieser Mittelwert beschreibt eine Grenze die im Folgenden von Bedeutung ist. Nun wird ähnlich wie bei der Helligkeit jeder Pixel durchlaufen nur das nun immer die Frage im Raum steht, ob der Pixel heller oder dunkler wie der eben berechnete Mittelwert ist. Ist der aktuelle Pixel heller als der mittlere Kontrast, dann wird der konstante Wert, welcher auch negativ sein kann, um den der Kontrast geändert werden soll, zu dem Pixel hinzugefügt. Ist der aktuelle Pixel dunkler als der mittlere Kontrast wird der Wert abgezogen. Daraus erhält man ein Bild das an den Hellen Stellen heller wird und an den dunkleren Stellen dunkler. Somit erhöht sich der Kontrast des Bildes.

public int calculateContrast(int pixel) {
	int newColor = pixel;
	if (pixel > meanContrast) {
		newColor = changeValue(newColor, contrast);
	}
	if (pixel < meanContrast) {
		newColor = changeValue(newColor, contrast * (-1));
	}
	return newColor;
}

Sonstige Methode

Um den Kontrast sowie die Helligkeit verändern zu können, benötigt man die changeValue –Methode, die den Pixel um den gegebenen Wert ändert.

private int changeValue(int pixel, int value) {
	Color col = new Color(pixel);
	int newRed = col.getRed() + value;
	newRed = (newRed > 255) ? 255 : newRed;
	newRed = (newRed < 0) ? 0 : newRed;

	int newGreen = col.getGreen() + value;
	newGreen = (newGreen > 255) ? 255 : newGreen;
	newGreen = (newGreen < 0) ? 0 : newGreen;

	int newBlue = col.getBlue() + value;
	newBlue = (newBlue > 255) ? 255 : newBlue;
	newBlue = (newBlue < 0) ? 0 : newBlue;

	Color newColor = new Color(newRed, newGreen, newBlue);
	return newColor.getRGB();
}
To view this content, you need to install Java from java.com

>weiter zum Canny-Kantendetektor