Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void processImage(){
- int[][] result = new int[800][600];
- int temp;
- res=new BufferedImage(800,600,BufferedImage.TYPE_BYTE_BINARY);
- int pixelvalue;
- int connectedComponentIndex = 0;
- //käydään läpi pikseli pikseliltä
- for(int x = 0; x < 799; x++){
- for(int y = 0; y < 599; y++){
- if(!pixelIsBlack(x, y, img)){
- if(getPixelsSmallestPreviousNeighbourIndex(x, y, result) != 0){
- result[x][y] = getPixelsSmallestPreviousNeighbourIndex(x, y, result);
- }else{
- connectedComponentIndex++;
- result[x][y] = connectedComponentIndex;
- }
- }
- }
- }
- }
- public int getPixelsSmallestPreviousNeighbourIndex(int x, int y, int[][] result){
- int index = 0;
- if(x != 0 && y != 0){
- index = result[x-1][y-1];
- }
- if(x != 0 && y == 0){
- if(result[x-1][y] != 0){
- if(index == 0 || result[x-1][y] < index){
- index = result[x-1][y];
- }
- }
- }
- if(x == 0 && y != 0){
- if(result[x][y-1] != 0){
- if(index == 0 || result[x][y-1] < index){
- index = result[x][y-1];
- }
- }
- if(result[x+1][y-1] != 0){
- if(index == 0 || result[x+1][y-1] < index){
- index = result[x][y-1];
- }
- }
- }
- return index;
- }
- public boolean pixelIsBlack(int x, int y, BufferedImage image){
- int pixelvalue = image.getRGB(x,y);
- int temp = pixelvalue>>16&0xff;
- if(temp == 0){
- return true;
- }else{
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement