i ja pokusavam nesto slicno. tacnije, hocu da slici izvucem ivice (sobelom npr.) i da je takvu snimim u grayscale varijanti, sto mi ne uspeva. procedura je sledeca: sliku prvo pretvorim u matricu, pa predjem maskom preko nje i na kraju matricu konvertujem nazad u sliku.
rezultat je sledeci:
http://imageshack.us/photo/my-images/577/penji.jpg/
http://imageshack.us/photo/my-images/824/imgcon.png/
evo i delova koda:
1) slika u matru
Code:
private int[][] toMatrix(){
int[][] matrix = new int[this.img.getHeight()][this.img.getWidth()];
for(int i = 0; i < this.img.getHeight(); i++){
for(int j = 0; j < this.img.getWidth(); j++){
matrix[i][j] = convertePixToGray(this.img.getRGB(i, j));
}
}
return matrix;
}
private int convertePixToGray(int pixel){
int r, g, b;
Color c = new Color(pixel);
r = c.getRed();
g = c.getGreen();
b = c.getBlue();
//ovo bi valjda trebalo da izracuna intenzitet sivila?
return (int) (0.2989 * r + 0.5870 * g + 0.1140 * b);
}
2) nazad
Code:
public void matrixToImage(){
for(int i = 0; i < this.img.getHeight(); i++){
for(int j = 0; j < this.img.getWidth(); j++){
this.img.setRGB(i, j, this.matrix[i][j]);
}
}
}
moguce da sam negde napravio strasnu glupost jer o citavom problemu (img processing) znam jako malo, a i s javom sam na vi. sugestije su dobrodosle.