Advertisement
franciscominajas

PROCESSING IMAGE_RGB_ARDUINO

Oct 12th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //declaracion de bibliotecas
  2. import processing.video.*;
  3. import processing.serial.*;
  4. //inicializacion de variables globales
  5. Capture video;
  6. Serial port;
  7.  
  8. void setup()
  9. {
  10.   //tamaño de la pantalla
  11.   size(640,480);
  12.   //inicializacion de video
  13.   video = new Capture(this,640,480,30);
  14.   video.start();
  15.   //inicialización del puerto series
  16.   port = new Serial(this, "COM13", 9600);
  17. }
  18.  
  19. void mousePressed()
  20. {
  21.   //obtener un frame por click
  22.   video.read();
  23. }
  24.  
  25. void draw()
  26. {
  27.   //inicializacion del fondo en blanco
  28.   background(0);
  29.   //obtencion de la imagen
  30.   image(video,0,0);
  31.   //carga de los pixeles
  32.   loadPixels();
  33.   //colocación de los pixeles en el centro
  34.   int loc1 = 320/2+480/2;
  35.   //obtencion de los 3 colores
  36.   float r1= red(video.pixels[loc1]);
  37.   float g1= green(video.pixels[loc1]);
  38.   float b1= blue(video.pixels[loc1]);
  39.   //coordenadas 100,220
  40.   int loc2 = 100/2+220/2;
  41.   //obtencion de los colores
  42.   float r2= red(video.pixels[loc2]);
  43.   float g2= green(video.pixels[loc2]);
  44.   float b2= blue(video.pixels[loc2]);
  45.   //coordenadas 220,400
  46.   int loc3 = 220/2+400/2;
  47.   //obtencion de los colores
  48.   float r3= red(video.pixels[loc3]);
  49.   float g3= green(video.pixels[loc3]);
  50.   float b3= blue(video.pixels[loc3]);
  51.  
  52.   int r = (int)(r1+r2+r3)/3;//promedio del rojo
  53.   int g = (int)(g1+g2+g3)/3;//promedio del verde
  54.   int b = (int)(b1+b2+b3)/3;//promedio del azul
  55.   //impresion en pantalla del promedio de los colores
  56.   print("r:", r, "g: ", g, "b: ", b, "\n");
  57.   port.write(r);//envio del rojo
  58.   port.write(g);//envio del verde
  59.   port.write(b);//envio del azul
  60.  
  61. }
  62. // Esta parte es ejecutada al momento de ser recibida
  63. // la información en arduino
  64. void serialEvent(Serial p)
  65. {
  66.   try
  67.   {
  68.     // Obtencon del mensaje (ASCII > 13)
  69.     String message = p.readStringUntil(13);
  70.     // Solamente si hay información
  71.     if (message != null)
  72.     {
  73.       println("Mensaje recibido: "+trim(message));
  74.     }
  75.   }
  76.   catch (Exception e)
  77.   {
  78.   }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement