アットウィキロゴ

p999bbv

package color;
 
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.scene.image.Image;
import java.io.File;
import static javafx.application.Application.launch;
import javafx.scene.image.ImageView;
 import javafx.scene.Group;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
 
 
import javafx.scene.input.MouseEvent;
 
import tool.*;
 
public class pro extends Application {
 
 GraphicsContext gc;    
 
int w=519;
int h=767;          
int[][] memor=new int[h][w]; 
int[][] memog=new int[h][w]; 
int[][] memob=new int[h][w];  
int number;
int[][] df=new int[h][w];
 
int[] pointx=new int[100];
int[] pointy=new int[100];
int xx,yy;
 
int[] countx=new int[100];
int[] county=new int[100];
  int[] routex=new int[10000];
int[] routey=new int[10000];
    int n,datanumber;
 
 
    public static void main(String[] args) {
        launch(args);
    }
 
 
 
    @Override
    public void start(Stage primaryStage) {
 
 
number=0;        
 
catchimg sub=new catchimg();
    sub.makedata("pic.jpg");
    memor=sub.memor;
    memog=sub.memog;
    memob=sub.memob; 
 
    boader sub2=new boader();
    sub2.memor=memor;
    sub2.memog=memog;
    sub2.memob=memob; 
    sub2.makedata();
    df=sub2.df;
 
 
 
 
 
  Canvas canvas = new Canvas(600,800);
 gc = canvas.getGraphicsContext2D();
canvas.setLayoutX(10);
canvas.setLayoutY(10);
 
gc.setFill(Color.WHITE);
gc.fillRect(0,0,550,770);
 
 int mx,nx;
 for(mx=0;mx<h;mx++){
  for(nx=0;nx<w;nx++){  
 Color col = Color.rgb(memor[mx][nx],memog[mx][nx], memob[mx][nx]);  
gc.setFill(col);
gc.fillRect(nx,mx,1,1);
                   }
                }
 
  for(mx=0;mx<h;mx++){
  for(nx=0;nx<w;nx++){  
  gc.setFill(Color.BLUE);      
if(df[mx][nx]>50)gc.fillRect(nx,mx,2,2);
   }
   }
 
canvas.addEventHandler(MouseEvent.MOUSE_CLICKED, 
       new EventHandler<MouseEvent>() {
           @Override
           public void handle(MouseEvent e) {
 
               int x1,y1;
 
               x1=(int)e.getX();
               y1=(int)e.getY();
 
        number=number+1;
        pointx[number]=x1;
           pointy[number]=y1;
 
           gc.setFill(Color.RED);          
gc.fillRect(x1,y1,5,5);   
              }
       });
 
 
Button btn = new Button();
        btn.setText("決定");
        btn.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
 
             int s;
 
                for(s=1;s<number+1;s++){
                met(pointx[s],pointy[s]);
                countx[s]=xx;
                county[s]=yy;
                }
 
                    for(s=1;s<number+1;s++){
                gc.setFill(Color.GREEN);      
gc.fillRect(countx[s],county[s],10,10);
                    }     
 
 
 
 
            }
        });
btn.setLayoutX(600);
btn.setLayoutY(200);
 
 
 
Button btn2 = new Button();
        btn2.setText("曲線");
        btn2.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
 
     makekine sub7=new makekine();
     sub7.number=number;
     sub7.countx=countx;
     sub7.county=county;
     sub7.df=df; 
     sub7.makedata();
    routex=sub7.routex;
     routey=sub7.routey;          
      datanumber=sub7.datanumber;
 
      int s;
 
        System.out.println(datanumber);
 
         for(s=1;s<datanumber+1;s++){
                gc.setFill(Color.RED);
 
        System.out.println("z"+routex[s]);  
 
gc.fillRect(routex[s],routey[s],2,2);
                }     
 
 
 
            }
        });
btn2.setLayoutX(600);
btn2.setLayoutY(300);
 
 
 
 
 
Button btn3 = new Button();
        btn3.setText("メモ");
        btn3.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
 
 
                String[] data=new String[500000];
 
                int s;
 
                 for(s=1;s<datanumber+1;s++){
                 data[s]=routex[s]+","+routey[s];
                 }
 
                writefile sd=new writefile();
                sd.datanumber=datanumber;
                sd.data=data;
                sd.makedata("g.txt");
 
 
 
 
 
 
            }
        });
btn3.setLayoutX(600);
btn3.setLayoutY(400);
 
 
 
 
 
 
       Group root = new Group();
Scene scene = new Scene(root, 800, 800);    
        root.getChildren().add(canvas);
  root.getChildren().add(btn);
  root.getChildren().add(btn2);
 
  root.getChildren().add(btn3);
 
        primaryStage.setTitle("画像処理");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
 void met(int x1,int y1){
 
     int mx,nx;
     int minf,f1;
     minf=99999;
      for(mx=0;mx<h;mx++){
  for(nx=0;nx<w;nx++){  
  f1=(mx-y1)*(mx-y1)+(nx-x1)*(nx-x1);
  if(df[mx][nx]<50)f1=99999;
  if(f1<minf)xx=nx;
  if(f1<minf)yy=mx;
  if(f1<minf)minf=f1;
 
  }
  }
 
 }
 
}
 
最終更新:2016年05月01日 09:10