SEO-Software von Suchmaschinenoptimierung.de

Bild verdoppeln und verändern über Prog.

(hier klicken, um zum Original Thread zu gelangen)
MyHome
Hi Leute

Ich finde einfach den Fehler nicht.
Dies soll der Effekt sein, wenn man das Original -Farbige- Bild (in dem Fall lena.JPG) verwendet. Einmal nur Grautöne und bei dem anderen nur die Umrandungen.

Effekt auf lena.JPG

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
import java.applet.Applet;
import java.awt.Graphics;
import uebung.GdiImage;

public class LaplaceApplet extends Applet {

	GdiImage image1; //Bild1
	GdiImage image2; //Bild2
		
	public void init() {

		
		image1 = new GdiImage("lena.jpg"); //Bild1 laden
		
    	//Bildgröße ermitteln
    	int w = image1.getWidth();
    	int h = image1.getHeight();
    	
    	//Bilddaten in 2-dimensionales Array speichern
    	int[][] pixels1 = image1.getPixels();
    	
   		//Bild bearbeiten
		for (int j = 0; j < h; j++) {
		    for (int i = 0; i < w; i++) {
		        int rgb = pixels1[j][i];
		        int r = (rgb >> 16) & 255;
		        int g = (rgb >> 8) & 255;
		        int b = rgb & 255;
		        int grau = (77 * r + 151 * g + 28 * b) / 256;
		        rgb = (grau << 16) + (grau << 8) + grau;
		        pixels1[j][i] = rgb;
		    }
		}
    	//Bild bearbeiten...
    	//2-dimensionales Array zurückspeichern
    	image1.setPixels(pixels1);
		
		image2 = new GdiImage("lena.jpg"); //Bild2 laden

		//Laplace Operator auf Bild2 anwenden über Pixel von Bild1
		int[][] pixels2 = image1.getPixels();
		int[][] pixels2_neu = image1.getPixels();
		
		int maske[][] = { { 0, 1, 0 }, { 1, -4, 1 }, { 0, 1, 0 } }; //Maske
		
		for (int j = 1; j < pixels2.length - 1; j++) {
			for (int i = 1; i < pixels2[i].length - 1; i++) {
			    int sum = 0;
			    for (int m = 0; m < 3; m++) {
			        for (int n = 0; n < 3; n++) {
			            sum += (pixels2[i + m - 1][j + n - 1] & 255)
			                 * maske[m][n];
			        }
			    }
			pixels2_neu[j][i] = sum; // Speicherung in einem neuen Feld!
			}
		}
		
		//Unterprogramme
		
		//Maximum und Minimum der Stärke der RGB-Werte berechnen
		//hmax = Maximum der RGB-Werte --> Helligkeit
		//hmin = Minimum der RGB-Werte --> Dunkelheit
		
		int hmax = 0;
		int hmin = 0;
		
		for (int j = 1; j < h - 1; j++) {
			for (int i = 1; i < w - 1; i++) {
				if (hmax < pixels2_neu[j][i]) {
					    hmax = pixels2_neu[j][i];
				}

				if (hmin > pixels2_neu[j][i]) {
					    hmin = pixels2_neu[j][i];
				}

			}
		}
		
		//RGB-Stärke von jedem Pixel herausfinden
		
		double v = 0;
		for (int j = 1; j < h - 1; j++) {
			for (int i = 1; i < w - 1; i++) {
				v = 255 / (hmax - hmin);
				int hpix = (int) (v * (pixels2_neu[j][i] - hmin));
				int r = (hpix << 16);
				int g = (hpix << 8);
				int b = hpix;
				hpix = r + g + b;
				pixels2_neu[j][i] = hpix;
			}
		}
		image2.setPixels(pixels2_neu);
	}

    public void paint(Graphics g) {
    	
    	
	//Bild zeichnen
    	int posX1 = 20;
    	int posY1 = 20;
    	g.drawImage(image1.getImage(), posX1, posY1, null);
    	
    	//Bildgröße ermitteln
    	int w = image1.getWidth();
    	int h = image1.getHeight();
    	
    	int posX2 = 40 + w;
    	int posY2 = 20;
    	g.drawImage(image2.getImage(), posX2, posY2, null);
    	
		//setSize(1100, 500);
    	setSize(((2 * w) + (3 * 20)), (h + (2 * 20)));

	}
}



Für das ganze ist die GdiImage.jar nötig. Die kann man jedoch, hier herbekommen:
(RECHTSKLICK --> Speichern Unter)
Download

Es wäre wirklich super, wenn mier da jemand helfen kann.
MyHome
hat sich erledigt, fehler gefunden
(hier klicken, um zum Original Thread zu gelangen)



Tipp: Ranking-Konzept.de - Das SEO-Forum (Forum rund um die Suchmaschinenoptimierung) der artaxo AG.
Das große Versicherungs ABC von Versicherung.de - mit allen Aspekten der Computerversicherungen!
Fan-Foren.de, die große Community mit Musikforum ist ab sofort online.