Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EVE to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow …

LEGO sample

package my_PACKAGE;

import java.io.IOException; // PACKAGE

import org.opencv.core.CvType; import org.opencv.core.Mat; import org.opencv.core.Mat.*; import org.opencv.core.MatOfByte; import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick; import lejos.hardware.BrickFinder; // PACKAGE import lejos.hardware.Button; // PACKAGE import lejos.hardware.LocalBTDevice; import lejos.hardware.ev3.EV3; import lejos.hardware.lcd.Font; import lejos.hardware.lcd.GraphicsLCD; // PACKAGE import lejos.hardware.video.Video; // PACKAGE import lejos.hardware.video.YUYVImage; // PACKAGE

public class Black_White_Camera // CLASS

{ /////////////////////////////////////////////////////////////////////////////////////////// //
private static final int WIDTH = 160; //
private static final int HEIGHT = 120; //
// // public static void main(String[] args) // METHOD // //
{ ///////////////////////////////////////////////////////////////////////////////// // // //
Brick MyBrick; // //
MyBrick = BrickFinder.getLocal(); // //
String MyType; // //
MyType = MyBrick.getType(); // //
if (MyType != "EV3") // //
{System.out.println("This is not an EV3"); // //
} // //
String MyName; // //
MyName = MyBrick.getName(); // //
LocalBTDevice MyIPAddressS; // //
MyIPAddressS = MyBrick.getBluetoothDevice(); // //
EV3 School_red_EV3; // //
School_red_EV3 = (EV3) BrickFinder.getLocal(); // //
// //
// Video Insten = School_red_EV3.getVideo(); // //
Video Insten; // //
Insten = School_red_EV3.getVideo(); // //
// //
// GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD(); // //
GraphicsLCD GraphicsScreen; // // GraphicsScreen = School_red_EV3.getGraphicsLCD(); // //
GraphicsScreen.setFont(Font.getSmallFont()); // // // //
try // // { // //
Insten.open(WIDTH,HEIGHT); // //
} // //
// //
catch (IOException e) // //
{ ///////////////////////////////////////////// // //
// TODO Auto-generated catch block // // //
//e.printStackTrace(); // // //
System.out.println("Plug in camera"); // // // System.err.println("Press any key ..."); // // //
System.out.println(""); // // //
System.out.println(""); // // //
System.out.println(""); // // //
System.out.println(""); // // //
System.out.println(""); // // //
Button.waitForAnyPress(); // // //
main(args); // // // } ///////////////////////////////////////// // // // // byte[] Still; // //
Still = Insten.createFrame(); // //
YUYVImage img; // //
img = new YUYVImage(Still, WIDTH, HEIGHT); // // // //
int threshold = 128; // //
boolean auto = true; // //
System.out.println("3/6/2018"); // //
System.out.println(MyType); // //
System.out.println(MyName); // //
System.out.println(MyIPAddressS); // //
System.err.println("Press any key ..."); // //
Button.waitForAnyPress(); // // System.out.println(""); // //
System.out.println(""); // //
System.out.println(""); // //
System.out.println(""); // //
System.out.println(""); // //
System.out.println(""); // //
System.out.println(""); // //
GraphicsScreen.clear(); // //
GraphicsScreen.refresh(); // // String filename = ((args.length > 0) ? args[0] : "lena.jpg"); // // while (!Button.ESCAPE.isDown()) // //
{ ////////////////////////////////////////////////// // // // // // try { // // // Insten.grabFrame(Still); // // // } catch (IOException e) { // // // // TODO Auto-generated catch block // // // e.printStackTrace(); // // // main(args); // // // } // // //
// // // if (auto) // // //
threshold = img.getMeanY() + 10; // // //
img.display(GraphicsScreen, 0, 0, threshold); // // //
if (Button.UP.isDown()) // // //
// // //
{ ///////////////////////// // // // // // // //
threshold++; // // // //
if (threshold > 255) // // // //
threshold = 255; // // // //
auto = false; // // // //
// // // //
} ///////////////////////// // // //
// // //
if (Button.DOWN.isDown()) // // //
// // //
{ /////////////////////// // // //
// // // //
threshold--; // // // //
if (threshold < 0) // // // //
threshold = 0; // // // //
auto = false; // // // //
// // // //
} /////////////////////// // // //
// // //
if (Button.ENTER.isDown()) // // //
// // //
{ ///////////////// // // //
// // // //
auto = true; // // // // // // // //
} ///////////////// // // // // // //
// // //
} ///////////////////////////////////////////////// // //
// //
try { // //
Insten.close(); // // GraphicsScreen.clear(); // // } catch (IOException e) { // // // TODO Auto-generated catch block // // e.printStackTrace(); // // } // //
GraphicsScreen.clear(); // //
// // } ///////////////////////////////////////////////////////////////////////////////// // // } //////////////////////////////////////////////////////////////////////////////////////////

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EVE to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow …

LEGO sample

package my_PACKAGE;

my_PACKAGE; import java.io.IOException; // PACKAGE

PACKAGE import org.opencv.core.CvType; import org.opencv.core.Mat; import org.opencv.core.Mat.*; import org.opencv.core.MatOfByte; import org.opencv.imgcodecs.Imgcodecs;

org.opencv.imgcodecs.Imgcodecs; import lejos.hardware.Brick; import lejos.hardware.BrickFinder; // PACKAGE import lejos.hardware.Button; // PACKAGE import lejos.hardware.LocalBTDevice; import lejos.hardware.ev3.EV3; import lejos.hardware.lcd.Font; import lejos.hardware.lcd.GraphicsLCD; // PACKAGE import lejos.hardware.video.Video; // PACKAGE import lejos.hardware.video.YUYVImage; // PACKAGE

PACKAGE public class Black_White_Camera // CLASS

CLASS { /////////////////////////////////////////////////////////////////////////////////////////// //
////////////////////////////////////////////////////////////// private static final int WIDTH = 160; //
private static final int HEIGHT = 120; //
// //
public static void main(String[] args) // METHOD // //
/ { ///////////////////////////////////////////////////////////////////////////////// // // //
//////////////////////////////////////////////////////////// Brick MyBrick; // //
MyBrick = BrickFinder.getLocal(); // //
// // String MyType; // //
// // MyType = MyBrick.getType(); // //
// // if (MyType != "EV3") // //
// {System.out.println("This is not an EV3"); // //
} // //
String MyName; // //
// // MyName = MyBrick.getName(); // //
// LocalBTDevice MyIPAddressS; // //
// // MyIPAddressS = MyBrick.getBluetoothDevice(); // //
// / EV3 School_red_EV3; // //
// // School_red_EV3 = (EV3) BrickFinder.getLocal(); // //
// //
//
Video Insten = School_red_EV3.getVideo(); // //
Video Insten; // //
// // Insten = School_red_EV3.getVideo(); // //
// //
// // // // // GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD(); // //
GraphicsLCD GraphicsScreen; // // GraphicsScreen = School_red_EV3.getGraphicsLCD(); // //
// // GraphicsScreen.setFont(Font.getSmallFont()); // // // //
try // // { // //
Insten.open(WIDTH,HEIGHT); // //
// // } // //
// //
/ catch (IOException e) // //
{ ///////////////////////////////////////////// // //
// // // TODO Auto-generated catch block // // //
// // //e.printStackTrace(); // // //
// // System.out.println("Plug in camera"); // // // System.err.println("Press any key ..."); // // //
/ // System.out.println(""); // // //
// // System.out.println(""); // // //
// // System.out.println(""); // // //
// // System.out.println(""); // // //
// // System.out.println(""); // // //
// // Button.waitForAnyPress(); // // //
// // main(args); // // // } ///////////////////////////////////////// // // // // byte[] Still; // //
// // Still = Insten.createFrame(); // //
// // YUYVImage img; // //
// // img = new YUYVImage(Still, WIDTH, HEIGHT); // // // //
// // int threshold = 128; // //
// // boolean auto = true; // //
// // System.out.println("3/6/2018"); // //
// // System.out.println(MyType); // //
// // System.out.println(MyName); // //
// // System.out.println(MyIPAddressS); // //
// // System.err.println("Press any key ..."); // //
// // Button.waitForAnyPress(); // // System.out.println(""); // //
// // System.out.println(""); // //
// // System.out.println(""); // //
// // System.out.println(""); // //
// // System.out.println(""); // //
// // System.out.println(""); // //
// // System.out.println(""); // //
// // GraphicsScreen.clear(); // //
// // GraphicsScreen.refresh(); // // String filename = ((args.length > 0) ? args[0] : "lena.jpg"); // // while (!Button.ESCAPE.isDown()) // //
// // { ////////////////////////////////////////////////// // // // // // try { // // // Insten.grabFrame(Still); // // // } catch (IOException e) { // // // // TODO Auto-generated catch block // // // e.printStackTrace(); // // // main(args); // // // } // // //
//
// // // // // if (auto) // // //
// // threshold = img.getMeanY() + 10; // // //
// // img.display(GraphicsScreen, 0, 0, threshold); // // //
// // if (Button.UP.isDown()) // // //
// // //
// // { ///////////////////////// // // // // // // //
threshold++; // // // //
// // if (threshold > 255) // // // //
// // threshold = 255; // // // //
// // auto = false; // // // //
// // // //
} ///////////////////////// // // //
// // //
// // if (Button.DOWN.isDown()) // // //
// // //
// // { /////////////////////// // // //
// // // //
threshold--; // // // //
// // if (threshold < 0) // // // //
// // threshold = 0; // // // //
// // auto = false; // // // //
// // // //
} /////////////////////// // // //
// // //
// // if (Button.ENTER.isDown()) // // //
// // //
// // { ///////////////// // // //
// // // //
// auto = true; // // // // // // // //
} ///////////////// // // // // // //
// // //
// // } ///////////////////////////////////////////////// // //
// //
//////////////////////////////////////////////// try { // //
Insten.close(); // // GraphicsScreen.clear(); // // } catch (IOException e) { // // // TODO Auto-generated catch block // // e.printStackTrace(); // // } // //
// // GraphicsScreen.clear(); // //
//
// // } //////////////// // } ///////////////////////////////////////////////////////////////////////////////// // // } //////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EVE to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow …

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;
import lejos.hardware.ev3.EV3;
import lejos.hardware.lcd.Font;
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
     private static final int WIDTH = 160;                                                     //   
     private static final int HEIGHT = 120;                                                 
     public static void main(String[] args)    //  METHOD                                      /       
     {    ////////////////////////////////////////////////////////////
        Brick MyBrick;                                                                
        MyBrick = BrickFinder.getLocal();                                  //    //         
        String MyType;                                             //    //         
        MyType = MyBrick.getType();                                  //    //      
        if (MyType != "EV3")                                                //       
        {System.out.println("This is not an EV3");                                             
        }                                                                                //    //          
        String MyName;                                                             //    //      
        MyName = MyBrick.getName();                                                 //    
        LocalBTDevice MyIPAddressS;                                                 //    // 
        MyIPAddressS = MyBrick.getBluetoothDevice();                           //    /
         EV3 School_red_EV3;                                                         //    //         
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                               //    //          
        Insten = School_red_EV3.getVideo();                                         //    //          
                                                                                    //    //      
        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                                 //    //
         GraphicsScreen = School_red_EV3.getGraphicsLCD();                           //    //          
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                              //    // 
        {                                                                                //    //     
            Insten.open(WIDTH,HEIGHT);                                              //    //   
        }                                                                                //    /
         catch (IOException e)                                                            //    //   
        {    /////////////////////////////////////////////                          //    //    
            // TODO Auto-generated catch block          //                        
            //e.printStackTrace();                      //    //    
            //e.printStackTrace();                      //                         //    //        
            System.out.println("Plug in camera");       //                          //    //
             System.err.println("Press any key ...");    //                           /                
            System.out.println("");                     //                   
            System.out.println("");                     //                          
            System.out.println("");                     //                         
            System.out.println("");                     //   
            System.out.println("");                     //                          
            Button.waitForAnyPress();                   //                        
            main(args);                                 //  
            System.out.println("");                     //                          //    //  
            System.out.println("");                     //                          //    //  
            System.out.println("");                     //                          //    //  
            Button.waitForAnyPress();                   //                          //    //  
            main(args);                                 //                          //    //
             }    /////////////////////////////////////////         
        byte[] Still;                                                               //    //             
        Still = Insten.createFrame();                                               //    //              
        YUYVImage img;                                                              //    //                 
        img = new YUYVImage(Still, WIDTH, HEIGHT);                                  //    //   
        int threshold = 128;                                                        //    //            
        boolean auto = true;                                                        //    //     
        System.out.println("3/6/2018");                                             //    //  
        System.out.println(MyType);                                                 //    //  
        System.out.println(MyName);                                                 //    //  
        System.out.println(MyIPAddressS);                                           //    //  
        System.err.println("Press any key ...");                                    //    //                  
        Button.waitForAnyPress();                                                   //    // 
        System.out.println("");                                                     //    //  
        System.out.println("");                                                     //    //  
        System.out.println("");                                                     //    //  
        System.out.println("");                                                     //    //  
        System.out.println("");                                                     //    //  
        System.out.println("");                                                     //    //  
        System.out.println("");                                                     //    //  
        GraphicsScreen.clear();                                                     //    //   
        GraphicsScreen.refresh();                                                   //    // 
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");              //    //
         while (!Button.ESCAPE.isDown())                                            //    //       
        {    //////////////////////////////////////////////////              ////////////////////        //    //
         try {                                               //                     //    //
                 Insten.grabFrame(Still);                     //                     //    //
             } catch (IOException e) {                        //                     //    //
                // TODO Auto-generated catch block           //                     //    //
                e.printStackTrace();                         //                     //    //
             main(args);                                      //                           //
             }                                                //                     //    //               
                                                             //                     //    //
             if (auto)                                        //                     //    //        
                threshold = img.getMeanY() + 10;             //                     //    //                
            img.display(GraphicsScreen, 0, 0, threshold);    //                     //    //            
            if (Button.UP.isDown())                         
             {    /////////////////////////                  //                         
                 threshold++;            //     //  
             {    /////////////////////////                  //                         
                 threshold++;            //                  //                     //    //                
                 if (threshold > 255)    //                  //                     //    //          
                     threshold = 255;    //                  //                     //    // /                  
                 auto = false;           //                  //                     
             }    /////////////////////////                  //                     //    //            
             if (Button.DOWN.isDown())                                  
             {    ///////////////////////                   
                 threshold--;          //                     //    //              
             {    ///////////////////////                    //              
                 threshold--;          //                    //                     //    //     
                 if (threshold < 0)    //                    //                     //    //            
                     threshold = 0;    //                    //                     //    //      
                 auto = false;         //                    //                  
             }    ///////////////////////                    //                     //    //            
             if (Button.ENTER.isDown())                      //                     //    //              
             {    /////////////////                          //                     //   
                 auto = true;    //                          //                 
             }    /////////////////                          //                         //                        //            
         }    ////////////////////////////////////////////////                   
          try {                                                                          //    //  
            Insten.close();                                                         //    // 
            GraphicsScreen.clear();                                                 //    //
         } catch (IOException e) {                                                   //    //
             // TODO Auto-generated catch block                                      //    //
             e.printStackTrace();                                                    //    //
         }                                                                           //   //        
          GraphicsScreen.clear();                                                   //    //        
                        }    ////////////////                                                         //
  }     ///////////////////////////////////////////////////////
//////////////////////////////////

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EVE to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow …

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;
import lejos.hardware.ev3.EV3;
import lejos.hardware.lcd.Font;
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
     private static final int WIDTH = 160;                 //   
     private static final int HEIGHT = 120;                              
     public static void main(String[] args)    //  METHOD       /       
  {    ////////////////////////////////////////////////////////////
        Brick MyBrick;                                                                
        MyBrick = BrickFinder.getLocal();                                          
        String MyType;                                                    
        MyType = MyBrick.getType();                                      
        if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
         Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    /////////////////////////////////////////////                            
     // TODO Auto-generated catch block   //                        
     //e.printStackTrace();             //                            
         System.out.println("Plug in camera");       //                     
            System.err.println("Press any key ...");    //                                          
            System.out.println("");                     //                         
            System.out.println("");                     //                          
            System.out.println("");                     //                         
            System.out.println("");                     //                          
            System.out.println("");                     //                          
            Button.waitForAnyPress();                   //                        
            main(args);                                 //                       
            }    /////////////////////////////////////////        
        byte[] Still;                                                                  
        Still = Insten.createFrame();                                                            
        YUYVImage img;                                                                          
        img = new YUYVImage(Still, WIDTH, HEIGHT);                                   
        int threshold = 128;                                                                   
        boolean auto = true;                                                           
        System.out.println("3/6/2018");                                              
        System.out.println(MyType);                                                 
        System.out.println(MyName);                                                 
        System.out.println(MyIPAddressS);                                            
        System.err.println("Press any key ...");                                                     
        Button.waitForAnyPress();                                                   
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                     
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                     
        GraphicsScreen.clear();                                                     
        GraphicsScreen.refresh();                                               
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    ////////////////////        //    //
         try {                                   
     Insten.grabFrame(Still);                   
 } catch (IOException e) {              //    //
     // TODO Auto-generated catch block          //    //
                 e.printStackTrace();             
     main(args);                                 
     }                                                        

            if (auto)                                            
                threshold = img.getMeanY() + 10;                        
            img.display(GraphicsScreen, 0, 0, threshold);             
            if (Button.UP.isDown())                         
             {    /////////////////////////                  //                         
                 threshold++;            //                  //                   
                 if (threshold > 255)    //                  //          
                     threshold = 255;    //                  / //                  
                 auto = false;           //                  //                     
             }    /////////////////////////                  //             
             if (Button.DOWN.isDown())                        //           
             {    ///////////////////////                     //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //            
                     threshold = 0;    //                    //      
                 auto = false;         //                    //                  
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                       //             
             {    /////////////////                           //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
     Insten.close();                                          
     GraphicsScreen.clear();                                   
     } catch (IOException e) {                                      
     // TODO Auto-generated catch block                            
     e.printStackTrace();                                       
        }                                                                        
          GraphicsScreen.clear();                                              
            }    ////////////////                                
 }     //////////////////////////////////

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EVE to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow …

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        // ¬//    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;
lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;
lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;
lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
     private static final int WIDTH = 160;                //   
     private static final int HEIGHT = 120;                             
     public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
     Brick MyBrick;                                                                
     MyBrick = BrickFinder.getLocal();                                          
     String MyType;                                                    
     MyType = MyBrick.getType();                                      
     if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    ///////////////////////////////////////////// ////////////////////////////////////////////////////                            
    // TODO Auto-generated catch block   //                        
    //e.printStackTrace();             //                            
        System.out.println("Plug in camera");        //                     
            System.err.println("Press any key ...");    //                                          
            System.out.println("");                     //                         
            System.out.println("");                     //                          
            System.out.println("");                     //                         
            System.out.println("");                     //                          
            System.out.println("");                     //                          
            Button.waitForAnyPress();                   //                        
            main(args);                                 //                       
            }    /////////////////////////////////////////        
        byte[] Still;                                                                  
        Still = Insten.createFrame();                                                            
        YUYVImage img;                                                                          
        img = new YUYVImage(Still, WIDTH, HEIGHT);                                   
        int threshold = 128;                                                                   
        boolean auto = true;                                                           
        System.out.println("3/6/2018");                                              
        System.out.println(MyType);                                                 
        System.out.println(MyName);                                                 
        System.out.println(MyIPAddressS);                                            
        System.err.println("Press any key ...");                                                     
        Button.waitForAnyPress();                                                   
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                     
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                     
        GraphicsScreen.clear();                                                     
        GraphicsScreen.refresh();                                               
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    ////////////////////        //    //
//////////////////////////////////////////////////    
         try {                                                //
    Insten.grabFrame(Still);                          // 
} catch (IOException e) {              //     //
    // TODO Auto-generated catch block                //     
           e.printStackTrace();                               //
    main(args);                                       //    
    }                                                  //             
                                                             //
            if (auto)                                          // 
                threshold = img.getMeanY() + 10;              //       
            img.display(GraphicsScreen, 0, 0, threshold);     //   
            if (Button.UP.isDown())                           //
             {    /////////////////////////                  //                         
                 threshold++;            //                  //                   
                 if (threshold > 255)    //                  //          
                     threshold = 255;    //                  //                  
                 auto = false;           //                  //                     
             }    /////////////////////////                  //             
             if (Button.DOWN.isDown())                       //           
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //            
                     threshold = 0;    //                    //      
                 auto = false;         //                    //                  
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                                        
          GraphicsScreen.clear();                                              
           }                               
 }     //////////////////////////////////

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EVE to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow …

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        ¬//    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
     private static final int WIDTH = 160;                //   
     private static final int HEIGHT = 120;                             
     public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
    Brick MyBrick;                                                                
    MyBrick = BrickFinder.getLocal();                                          
    String MyType;                                                    
    MyType = MyBrick.getType();                                      
    if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    ////////////////////////////////////////////////////                            
    // TODO Auto-generated catch block                  //                        
    //e.printStackTrace();                              //                            
        System.out.println("Plug in camera");           //                     
            System.err.println("Press any key ...");    //                                          
            System.out.println("");                     //                         
            System.out.println("");                     //                          
            System.out.println("");                     //                         
            System.out.println("");                     //                          
            System.out.println("");                     //                          
            Button.waitForAnyPress();                   //                        
            main(args);                                 //                       
            }    /////////////////////////////////////////        
        byte[] Still;                                                                  
        Still = Insten.createFrame();                                                            
        YUYVImage img;                                                                          
        img = new YUYVImage(Still, WIDTH, HEIGHT);                                   
        int threshold = 128;                                                                   
        boolean auto = true;                                                           
        System.out.println("3/6/2018");                                              
        System.out.println(MyType);                                                 
        System.out.println(MyName);                                                 
        System.out.println(MyIPAddressS);                                            
        System.err.println("Press any key ...");                                                     
        Button.waitForAnyPress();                                                   
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                     
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                     
        GraphicsScreen.clear();                                                     
        GraphicsScreen.refresh();                                               
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    //////////////////////////////////////////////////    
         try {                                               //
    Insten.grabFrame(Still);                          // 
} catch (IOException e) {                         //
    // TODO Auto-generated catch block               //     
           e.printStackTrace();                              //
    main(args);                                       //    
    }                                                 //             
                                                             //
            if (auto)                                         // 
                threshold = img.getMeanY() + 10;             //       
            img.display(GraphicsScreen, 0, 0, threshold);    //   
            if (Button.UP.isDown())                          //
             {    /////////////////////////                  //                         
                 threshold++;            //                  //                   
                 if (threshold > 255)    //                  //          
                     threshold = 255;    //                  //                  
                 auto = false;           //                  //                     
             }    /////////////////////////                  //             
             if (Button.DOWN.isDown())                       //           
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //            
                     threshold = 0;    //                    //      
                 auto = false;         //                    //                  
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                                        
          GraphicsScreen.clear();                                              
           }                               
 }     //////////////////////////////////

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EVE to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow …

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        ¬//    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
     private static final int WIDTH = 160;                //   
     private static final int HEIGHT = 120;                             
     public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
    Brick MyBrick;                                                                
    MyBrick = BrickFinder.getLocal();                                          
    String MyType;                                                    
    MyType = MyBrick.getType();                                      
    if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    ////////////////////////////////////////////////////                            
    // TODO Auto-generated catch block                  //                        
    //e.printStackTrace();                              //                            
        System.out.println("Plug in camera");           //                     
            System.err.println("Press any key ...");    //                                          
            System.out.println("");                     //                         
            System.out.println("");                     //                          
            System.out.println("");                     //                         
            System.out.println("");                     //                          
            System.out.println("");                     //                          
            Button.waitForAnyPress();                   //                        
            main(args);                                 //                       
            }    /////////////////////////////////////////        
        byte[] Still;                                                                  
        Still = Insten.createFrame();                                                            
        YUYVImage img;                                                                          
        img = new YUYVImage(Still, WIDTH, HEIGHT);                                   
        int threshold = 128;                                                                   
        boolean auto = true;                                                           
        System.out.println("3/6/2018");                                              
        System.out.println(MyType);                                                 
        System.out.println(MyName);                                                 
        System.out.println(MyIPAddressS);                                            
        System.err.println("Press any key ...");                                                     
        Button.waitForAnyPress();                                                   
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                     
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                     
        GraphicsScreen.clear();                                                     
        GraphicsScreen.refresh();                                               
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    //////////////////////////////////////////////////    
         try {                                               //
    Insten.grabFrame(Still);                          // 
} catch (IOException e) {                         //
    // TODO Auto-generated catch block               //     
           e.printStackTrace();                              //
    main(args);                                       //    
    }                                                 //             
                                                             //
            if (auto)                                         // 
                threshold = img.getMeanY() + 10;             //       
            img.display(GraphicsScreen, 0, 0, threshold);    //   
            if (Button.UP.isDown())                          //
             {    /////////////////////////                  //                         
                 threshold++;            //                  //                   
                 if (threshold > 255)    //                  //          
                     threshold = 255;    //                  //                  
                 auto = false;           //                  //                     
             }    /////////////////////////                  //             
             if (Button.DOWN.isDown())                       //           
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //            
                     threshold = 0;    //                    //      
                 auto = false;         //                    //                  
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                                        
          GraphicsScreen.clear();                                              
           }                               
 }     //////////////////////////////////
///

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EVE to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow …

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        ¬//    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
     private static final int WIDTH = 160;                //   
     private static final int HEIGHT = 120;                             
     public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
    Brick MyBrick;                                                                
    MyBrick = BrickFinder.getLocal();                                          
    String MyType;                                                    
    MyType = MyBrick.getType();                                      
    if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    ////////////////////////////////////////////////////                            
    // TODO Auto-generated catch block                  //                        
    //e.printStackTrace();                              //                            
        System.out.println("Plug in camera");           //                     
            System.err.println("Press any key ...");    //                                          
            System.out.println("");                     //                         
            System.out.println("");                     //                          
            System.out.println("");                     //                         
            System.out.println("");                     //                          
            System.out.println("");                     //                          
            Button.waitForAnyPress();                   //                        
            main(args);                                 //                       
            }    /////////////////////////////////////////        
        byte[] Still;                                                                  
        Still = Insten.createFrame();                                                            
        YUYVImage img;                                                                          
        img = new YUYVImage(Still, WIDTH, HEIGHT);                                   
        int threshold = 128;                                                                   
        boolean auto = true;                                                           
        System.out.println("3/6/2018");                                              
        System.out.println(MyType);                                                 
        System.out.println(MyName);                                                 
        System.out.println(MyIPAddressS);                                            
        System.err.println("Press any key ...");                                                     
        Button.waitForAnyPress();                                                   
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                     
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                      
        System.out.println("");                                                     
        GraphicsScreen.clear();                                                     
        GraphicsScreen.refresh();                                               
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    //////////////////////////////////////////////////    
         try {                                               //
    Insten.grabFrame(Still);                          // 
} catch (IOException e) {                         //
    // TODO Auto-generated catch block               //  
           e.printStackTrace();                              //
    main(args);                                       //    
//
    }                                                 //             
//
                                                             //
            if (auto)                                         // 
//
                threshold = img.getMeanY() + 10;             //       
//
            img.display(GraphicsScreen, 0, 0, threshold);    //   
//
            if (Button.UP.isDown())                          //
             {    /////////////////////////                  //  
                 threshold++;            //                  //           
                 if (threshold > 255)    //                  //  
                     threshold = 255;    //                  //          
                 auto = false;           //                  //             
             }    /////////////////////////                  //   
             if (Button.DOWN.isDown())                       //    
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //            
                     threshold = 0;    //                    //      
                 auto = false;         //                    //                  
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                                        
          GraphicsScreen.clear();                                              
           }                               
 }     ///

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EVE to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow …

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        ¬// //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
  private static final int WIDTH = 160;                //   
  private static final int HEIGHT = 120;                             
  public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
 Brick MyBrick;                                                                
 MyBrick = BrickFinder.getLocal();                                          
 String MyType;                                                    
 MyType = MyBrick.getType();                                      
 if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    ////////////////////////////////////////////////////                            
    // /////////////////////////////////////////                            
         TODO Auto-generated catch block             //                        
    //e.printStackTrace();           e.printStackTrace();                        //                            
        System.out.println("Plug in camera");        //                     
         System.err.println("Press any key ...");    //                                System.out.println("");                     //                                System.out.println("");                     //                                 System.out.println("");                     //                               System.out.println("");                     //                               System.out.println("");                     //                                Button.waitForAnyPress();                   //                             main(args);                                 //                             }    /////////////////////////////////////////        
        byte[] Still;                                                    
        Still = Insten.createFrame();                                     
        YUYVImage img;                                                      
        img = new YUYVImage(Still, WIDTH, HEIGHT);                             
        int threshold = 128;                                                         
        boolean auto = true;                                              
        System.out.println("3/6/2018");                                    
        System.out.println(MyType);                                     
        System.out.println(MyName);                                      
        System.out.println(MyIPAddressS);                         
        System.err.println("Press any key ...");                  
        Button.waitForAnyPress();                                 
        System.out.println("");                                   
        System.out.println("");                                 
        System.out.println("");                                   
        System.out.println("");                                    
        System.out.println("");                                 
        System.out.println("");                                
        System.out.println("");                                
        GraphicsScreen.clear();                                  
        GraphicsScreen.refresh();                                    
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    //////////////////////////////////////////////////    
         try {                                               //
     Insten.grabFrame(Still);                           // 
 } catch (IOException e) {                          //
     // TODO Auto-generated catch block               // 
       //
           e.printStackTrace();                              //
     main(args);                                        //
     }                                                 //
                                                             //
            if (auto)                           //
                threshold = img.getMeanY() + 10;             //
            img.display(GraphicsScreen, 0, 0, threshold);    //
            if (Button.UP.isDown())                          //
             {    /////////////////////////                  // 
                 threshold++;            //                  //     
                 if (threshold > 255)    //                  // 
                     threshold = 255;    //                  //     
                 auto = false;           //                  //       
             }    /////////////////////////                  //  
             if (Button.DOWN.isDown())                       //   
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //      
                     threshold = 0;    //                    //      
                 auto = false;         //                    //         
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                         
          GraphicsScreen.clear();                                              
           }                               
 }     ///

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EVE to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow …

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
 private static final int WIDTH = 160;                //   
 private static final int HEIGHT = 120;                             
 public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
Brick MyBrick;                                                                
MyBrick = BrickFinder.getLocal();                                          
String MyType;                                                    
MyType = MyBrick.getType();                                      
if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    /////////////////////////////////////////                            
         TODO Auto-generated catch block            //                        
        e.printStackTrace();                        //                            
        System.out.println("Plug in camera");       //                     
        System.err.println("Press any key ...");    //                      
        System.out.println("");                     //                      
        System.out.println("");                     //                       
        System.out.println("");                     //                     
        System.out.println("");                     //                     
        System.out.println("");                     //                      
        Button.waitForAnyPress();                   //                   
        main(args);                                 //                   
        }    /////////////////////////////////////////        
        byte[] Still;                                                   
        Still = Insten.createFrame();                                    
        YUYVImage img;                                                     
        img = new YUYVImage(Still, WIDTH, HEIGHT);                            
        int threshold = 128;                                                        
        boolean auto = true;                                             
        System.out.println("3/6/2018");                                   
        System.out.println(MyType);                                    
        System.out.println(MyName);                                     
        System.out.println(MyIPAddressS);                        
        System.err.println("Press any key ...");                 
        Button.waitForAnyPress();                                
        System.out.println("");                                  
        System.out.println("");                                
        System.out.println("");                                  
        System.out.println("");                                   
        System.out.println("");                                
        System.out.println("");                               
        System.out.println("");                               
        GraphicsScreen.clear();                                 
        GraphicsScreen.refresh();                                   
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    //////////////////////////////////////////////////    
         try {                                               //
        Insten.grabFrame(Still);                             // 
    } catch (IOException e) {                                //
     // TODO Auto-generated catch block                      //
           e.printStackTrace();                              //
        main(args);                                          //
           }                                                 //
                        if (auto)                          //
                threshold = img.getMeanY() + 10;             //
            img.display(GraphicsScreen, 0, 0, threshold);    //
            if (Button.UP.isDown())                          //
             {    /////////////////////////                  // 
                 threshold++;            //                  //    
                 if (threshold > 255)    //                  // 
                     threshold = 255;    //                  //    
                 auto = false;           //                  //      
             }    /////////////////////////                  //  
             if (Button.DOWN.isDown())                       //   
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //     
                     threshold = 0;    //                    //      
                 auto = false;         //                    //        
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                        
          GraphicsScreen.clear();                                              
           }                               
 }     ///

.

OpenCV Sample

package openCV_340_PACKAGE;

import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;




class SmoothingRun {

    ///  Global Variables
    int DELAY_CAPTION = 1500;
    int DELAY_BLUR = 100;
    int MAX_KERNEL_LENGTH = 31;

    Mat src = new Mat(), dst = new Mat();
    String windowName = "Filter Demo 1";

    public void run(String[] args) {

        String filename = ((args.length > 0) ? args[0] : "lena.jpg");

        src = Imgcodecs.imread(filename, Imgcodecs.IMREAD_COLOR);
        if( src.empty() ) {
            System.out.println("Error opening image");
            System.out.println("Usage: ./Smoothing [image_name -- default ../data/lena.jpg] \n");
            System.exit(-1);
        }

        if( displayCaption( "Original Image" ) != 0 ) { System.exit(0); }

        dst = src.clone();
        if( displayDst( DELAY_CAPTION ) != 0 ) { System.exit(0); }

        /// Applying Homogeneous blur
        if( displayCaption( "Homogeneous Blur" ) != 0 ) { System.exit(0); }

        //! [blur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));
            displayDst(DELAY_BLUR);
        }
        //! [blur]

        /// Applying Gaussian blur
        if( displayCaption( "Gaussian Blur" ) != 0 ) { System.exit(0); }

        //! [gaussianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.GaussianBlur(src, dst, new Size(i, i), 0, 0);
            displayDst(DELAY_BLUR);
        }
        //! [gaussianblur]

        /// Applying Median blur
        if( displayCaption( "Median Blur" ) != 0 ) { System.exit(0); }

        //! [medianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.medianBlur(src, dst, i);
            displayDst(DELAY_BLUR);
        }
        //! [medianblur]

        /// Applying Bilateral Filter
        if( displayCaption( "Bilateral Blur" ) != 0 ) { System.exit(0); }

        //![bilateralfilter]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.bilateralFilter(src, dst, i, i * 2, i / 2);
            displayDst(DELAY_BLUR);
        }
        //![bilateralfilter]

        /// Done
        displayCaption( "Done!" );

        System.exit(0);
    }

    int displayCaption(String caption) {
        dst = Mat.zeros(src.size(), src.type());
        Imgproc.putText(dst, caption,
                new Point(src.cols() / 4, src.rows() / 2),
                Core.FONT_HERSHEY_COMPLEX, 1, new Scalar(255, 255, 255));

        return displayDst(DELAY_CAPTION);
    }

    int displayDst(int delay) {
        HighGui.imshow( windowName, dst );
        int c = HighGui.waitKey( delay );
        if (c >= 0) { return -1; }
        return 0;
    }
}


public class Smoothing_Images_CLASS {
 public static void main(String[] args) {
        // Load the native library.
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        new SmoothingRun().run(args);
    }
}

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EVE EV3 to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow … . . . My program ...

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;
import lejos.hardware.ev3.EV3;
import lejos.hardware.lcd.Font;
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Email    //    CLASS

 {    ///////////////////////////////////////////////////////////////////////////
                                                                               //          
     private static final int WIDTH = 160;                                     //   
     private static final int HEIGHT = 120;                                    //  
     //    private static final String WIDTH = null;
                                                                               //
                                                                               //
     public static void main(String[] args)    //  METHOD                      //
                                                                               //          
     {    /////////////////////////////////////////////////////////////////    //
                                                                         //    //                 
        Brick MyBrick;                                                   //    //            
        MyBrick = BrickFinder.getLocal();                                //    //         
        String MyType;                                                   //    //         
        MyType = MyBrick.getType();                                      //    //      
        String MyName;                                                   //    //      
        MyName = MyBrick.getName();                                      //    //     
        LocalBTDevice MyIPAddressS;                                      //    //         
        MyIPAddressS = MyBrick.getBluetoothDevice();                     //    //          
        EV3 School_red_EV3;                                              //    //         
        School_red_EV3 = (EV3) BrickFinder.getLocal();                   //    //         
        Video Insten;                                                    //    //          
        Insten = School_red_EV3.getVideo();                              //    //          
        GraphicsLCD GraphicsScreen;                                      //    //
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                //    //          
        GraphicsScreen.setFont(Font.getSmallFont());                     //    //
        try {                                                            //    //            
            Insten.open(WIDTH,HEIGHT);                                   //    //             
        } catch (IOException e) {                                        //    //         
            // TODO Auto-generated catch block                           //    //         
            e.printStackTrace();                                         //    //   
        }                                                                //    //   
        byte[] Still;                                                    //    //             
        Still = Insten.createFrame();                                    //    //             
        YUYVImage img;                                                   //    //                 
        img = new YUYVImage(Still, WIDTH, HEIGHT);                       //    //                                                                                              //    //      
        int threshold = 128;                                             //    //            
        GraphicsScreen.clear();                                          //    //   
        GraphicsScreen.refresh();                                        //    // 
        while (!Button.ESCAPE.isDown())                                  //    //       
        {    ////////////////////////////////////////////                //    //                                //                          //    //
            try {                                                        //    //                
                Insten.grabFrame(Still);                                 //    //             
            } catch (IOException e) {                                    //    //                 
                // TODO Auto-generated catch block                       //    //                              
                e.printStackTrace();                                     //    //           
            }                                                            //    //
                threshold = img.getMeanY();                              //    //   
        img.display(GraphicsScreen, 0, 0, threshold);                    //    //
        }    ///////                                                     //    //
        try {                                                            //    //
            Insten.close();                                              //    //
        } catch (IOException e) {                                        //    //
            // TODO Auto-generated catch block                           //    //
            e.printStackTrace();                                         //    //   
        }                                                                //    //
        GraphicsScreen.clear();                                          //    //   
        Mat mat = null;                                                  //    // 
        //Mat src = Still;                                               //    //  
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");    //    //  
        Object H;
        mat = Imgcodecs.imdecode(new MatOfByte(Still), Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);
        //    Mat newImg = Mat(HEIGHT, WIDTH, CV_8UC1, Still + FRAMEINFO_SIZEF );
        //    mat.put(0, 0, Still);    //    Error on this line                //    //   
        Mat src = mat;                                                   //    // 
        Mat dst = null;                                                  //    //
        double i = 5;                                                    //    //
        Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));       //    //
        }    //////////////////////////////////////////////////////////////    //
                                                                               //
 }     //////////////////////////////////////////////////////////////////////////

. . .

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
 private static final int WIDTH = 160;                //   
 private static final int HEIGHT = 120;                             
 public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
Brick MyBrick;                                                                
MyBrick = BrickFinder.getLocal();                                          
String MyType;                                                    
MyType = MyBrick.getType();                                      
if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    /////////////////////////////////////////                            
         TODO Auto-generated catch block            //                        
        e.printStackTrace();                        //                            
        System.out.println("Plug in camera");       //                     
        System.err.println("Press any key ...");    //                      
        System.out.println("");                     //                      
        System.out.println("");                     //                       
        System.out.println("");                     //                     
        System.out.println("");                     //                     
        System.out.println("");                     //                      
        Button.waitForAnyPress();                   //                   
        main(args);                                 //                   
        }    /////////////////////////////////////////        
        byte[] Still;                                                   
        Still = Insten.createFrame();                                    
        YUYVImage img;                                                     
        img = new YUYVImage(Still, WIDTH, HEIGHT);                            
        int threshold = 128;                                                        
        boolean auto = true;                                             
        System.out.println("3/6/2018");                                   
        System.out.println(MyType);                                    
        System.out.println(MyName);                                     
        System.out.println(MyIPAddressS);                        
        System.err.println("Press any key ...");                 
        Button.waitForAnyPress();                                
        System.out.println("");                                  
        System.out.println("");                                
        System.out.println("");                                  
        System.out.println("");                                   
        System.out.println("");                                
        System.out.println("");                               
        System.out.println("");                               
        GraphicsScreen.clear();                                 
        GraphicsScreen.refresh();                                   
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    //////////////////////////////////////////////////    
         try {                                               //
        Insten.grabFrame(Still);                             // 
    } catch (IOException e) {                                //
     // TODO Auto-generated catch block                      //
           e.printStackTrace();                              //
        main(args);                                          //
           }                                                 //
                        if (auto)                          //
                threshold = img.getMeanY() + 10;             //
            img.display(GraphicsScreen, 0, 0, threshold);    //
            if (Button.UP.isDown())                          //
             {    /////////////////////////                  // 
                 threshold++;            //                  //    
                 if (threshold > 255)    //                  // 
                     threshold = 255;    //                  //    
                 auto = false;           //                  //      
             }    /////////////////////////                  //  
             if (Button.DOWN.isDown())                       //   
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //     
                     threshold = 0;    //                    //      
                 auto = false;         //                    //        
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                        
          GraphicsScreen.clear();                                              
           }                               
 }     ///

.

OpenCV Sample

package openCV_340_PACKAGE;

import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;




class SmoothingRun {

    ///  Global Variables
    int DELAY_CAPTION = 1500;
    int DELAY_BLUR = 100;
    int MAX_KERNEL_LENGTH = 31;

    Mat src = new Mat(), dst = new Mat();
    String windowName = "Filter Demo 1";

    public void run(String[] args) {

        String filename = ((args.length > 0) ? args[0] : "lena.jpg");

        src = Imgcodecs.imread(filename, Imgcodecs.IMREAD_COLOR);
        if( src.empty() ) {
            System.out.println("Error opening image");
            System.out.println("Usage: ./Smoothing [image_name -- default ../data/lena.jpg] \n");
            System.exit(-1);
        }

        if( displayCaption( "Original Image" ) != 0 ) { System.exit(0); }

        dst = src.clone();
        if( displayDst( DELAY_CAPTION ) != 0 ) { System.exit(0); }

        /// Applying Homogeneous blur
        if( displayCaption( "Homogeneous Blur" ) != 0 ) { System.exit(0); }

        //! [blur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));
            displayDst(DELAY_BLUR);
        }
        //! [blur]

        /// Applying Gaussian blur
        if( displayCaption( "Gaussian Blur" ) != 0 ) { System.exit(0); }

        //! [gaussianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.GaussianBlur(src, dst, new Size(i, i), 0, 0);
            displayDst(DELAY_BLUR);
        }
        //! [gaussianblur]

        /// Applying Median blur
        if( displayCaption( "Median Blur" ) != 0 ) { System.exit(0); }

        //! [medianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.medianBlur(src, dst, i);
            displayDst(DELAY_BLUR);
        }
        //! [medianblur]

        /// Applying Bilateral Filter
        if( displayCaption( "Bilateral Blur" ) != 0 ) { System.exit(0); }

        //![bilateralfilter]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.bilateralFilter(src, dst, i, i * 2, i / 2);
            displayDst(DELAY_BLUR);
        }
        //![bilateralfilter]

        /// Done
        displayCaption( "Done!" );

        System.exit(0);
    }

    int displayCaption(String caption) {
        dst = Mat.zeros(src.size(), src.type());
        Imgproc.putText(dst, caption,
                new Point(src.cols() / 4, src.rows() / 2),
                Core.FONT_HERSHEY_COMPLEX, 1, new Scalar(255, 255, 255));

        return displayDst(DELAY_CAPTION);
    }

    int displayDst(int delay) {
        HighGui.imshow( windowName, dst );
        int c = HighGui.waitKey( delay );
        if (c >= 0) { return -1; }
        return 0;
    }
}


public class Smoothing_Images_CLASS {
 public static void main(String[] args) {
        // Load the native library.
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        new SmoothingRun().run(args);
    }
}

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EV3 to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow … . . . My program ...

 package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;
import lejos.hardware.ev3.EV3;
import lejos.hardware.lcd.Font;
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Email    //    CLASS

 {    ///////////////////////////////////////////////////////////////////////////
                                                                               //          
  private static final int WIDTH = 160;                                     //   
        //   
 private static final int HEIGHT = 120;                                    //  
        //  
 //    private static final String WIDTH = null;
                                                  null;                              //
                                                                               //
                                                                              //
 public static void main(String[] args)    //  METHOD                       //
                                                                               //          
     {    ///////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////    //
                                                                         //    //                 
        //    //                 
Brick MyBrick;                                                   //    //            
         //     //            
MyBrick = BrickFinder.getLocal();                                //    //         
         //     //         
String MyType;                                                   //    //         
         //     //         
MyType = MyBrick.getType();                                      //    //      
         //     //      
String MyName;                                                   //    //      
         //     //      
MyName = MyBrick.getName();                                      //    //     
         //     //     
LocalBTDevice MyIPAddressS;                                      //    //         
         //     //         
MyIPAddressS = MyBrick.getBluetoothDevice();                     //    //          
         //     //          
EV3 School_red_EV3;                                              //    //         
         //     //         
School_red_EV3 = (EV3) BrickFinder.getLocal();                   //    //         
         //    //         
Video Insten;                                                    //    //          
         //    //          
Insten = School_red_EV3.getVideo();                              //    //          
         //    //          
GraphicsLCD GraphicsScreen;                                       //    //
 GraphicsScreen = School_red_EV3.getGraphicsLCD();                //    //          
         //    //          
GraphicsScreen.setFont(Font.getSmallFont());                      //    //
 try {                                                            //    //            
             //    //            
Insten.open(WIDTH,HEIGHT);                                   //    //             
             //    //             
} catch (IOException e) {                                        //    //         
             //    //         
// TODO Auto-generated catch block                           //    //         
                 //    //         
e.printStackTrace();                                         //    //   
             //    //   
}                                                                //    //   
         //    //   
byte[] Still;                                                    //    //             
         //    //       
Still = Insten.createFrame();                                    //    //          YUYVImage img;                                                   //    //          img = new YUYVImage(Still, WIDTH, HEIGHT);                       //    //                                                                                              //    //      
         int threshold = 128;                                             //    //            
 GraphicsScreen.clear();                                          //    //   
 GraphicsScreen.refresh();                                        //    // 
 while (!Button.ESCAPE.isDown())                                  //    //       
 {    ////////////////////////////////////////////                //    //                                //                          //    //
             try {                                                        //    //                
                 //    //                
Insten.grabFrame(Still);                                 //    //             
                            //    //           
} catch (IOException e) {                                    //    //                 
                            //    //
// TODO Auto-generated catch block                       //    //                              
                                //    //
e.printStackTrace();                                     //    //           
                            //    //
}                                                             //    //
 threshold = img.getMeanY();                              //    //   
                        //    //   
img.display(GraphicsScreen, 0, 0, threshold);                    //    //
 }    ///////                                                     //    //
                        ////
try {                                                            //    //
                            ////
Insten.close();                                              //    //
                            ////
} catch (IOException e) {                                        //    //
                            ////
// TODO Auto-generated catch block                           //    //
                                ////
e.printStackTrace();                                         //    //   
                            ////
}                                                                //    //
                        ////
GraphicsScreen.clear();                                          //    //   
                        ////
Mat mat = null;                                                  //    // 
                        ////
//Mat src = Still;                                               //    //  
                        ////
String filename = ((args.length > 0) ? args[0] : "lena.jpg");    //    //  
                             ////
Object H;
        H;                                                                             //
mat = Imgcodecs.imdecode(new MatOfByte(Still), Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);
        Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);    //
//    Mat newImg = Mat(HEIGHT, WIDTH, CV_8UC1, Still + FRAMEINFO_SIZEF );
 //    mat.put(0, 0, Still);    //    Error on this line                //    //   
 Mat src = mat;                                                   //    // 
 Mat dst = null;                                                  //    //
 double i = 5;                                                    //    //
 Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));       //    //
        }    //////////////////////////////////////////////////////////////    //
                                                                               //
 }     //////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////

. . .

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
 private static final int WIDTH = 160;                //   
 private static final int HEIGHT = 120;                             
 public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
Brick MyBrick;                                                                
MyBrick = BrickFinder.getLocal();                                          
String MyType;                                                    
MyType = MyBrick.getType();                                      
if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    /////////////////////////////////////////                            
         TODO Auto-generated catch block            //                        
        e.printStackTrace();                        //                            
        System.out.println("Plug in camera");       //                     
        System.err.println("Press any key ...");    //                      
        System.out.println("");                     //                      
        System.out.println("");                     //                       
        System.out.println("");                     //                     
        System.out.println("");                     //                     
        System.out.println("");                     //                      
        Button.waitForAnyPress();                   //                   
        main(args);                                 //                   
        }    /////////////////////////////////////////        
        byte[] Still;                                                   
        Still = Insten.createFrame();                                    
        YUYVImage img;                                                     
        img = new YUYVImage(Still, WIDTH, HEIGHT);                            
        int threshold = 128;                                                        
        boolean auto = true;                                             
        System.out.println("3/6/2018");                                   
        System.out.println(MyType);                                    
        System.out.println(MyName);                                     
        System.out.println(MyIPAddressS);                        
        System.err.println("Press any key ...");                 
        Button.waitForAnyPress();                                
        System.out.println("");                                  
        System.out.println("");                                
        System.out.println("");                                  
        System.out.println("");                                   
        System.out.println("");                                
        System.out.println("");                               
        System.out.println("");                               
        GraphicsScreen.clear();                                 
        GraphicsScreen.refresh();                                   
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    //////////////////////////////////////////////////    
         try {                                               //
        Insten.grabFrame(Still);                             // 
    } catch (IOException e) {                                //
     // TODO Auto-generated catch block                      //
           e.printStackTrace();                              //
        main(args);                                          //
           }                                                 //
                        if (auto)                          //
                threshold = img.getMeanY() + 10;             //
            img.display(GraphicsScreen, 0, 0, threshold);    //
            if (Button.UP.isDown())                          //
             {    /////////////////////////                  // 
                 threshold++;            //                  //    
                 if (threshold > 255)    //                  // 
                     threshold = 255;    //                  //    
                 auto = false;           //                  //      
             }    /////////////////////////                  //  
             if (Button.DOWN.isDown())                       //   
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //     
                     threshold = 0;    //                    //      
                 auto = false;         //                    //        
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                        
          GraphicsScreen.clear();                                              
           }                               
 }     ///

.

OpenCV Sample

package openCV_340_PACKAGE;

import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;




class SmoothingRun {

    ///  Global Variables
    int DELAY_CAPTION = 1500;
    int DELAY_BLUR = 100;
    int MAX_KERNEL_LENGTH = 31;

    Mat src = new Mat(), dst = new Mat();
    String windowName = "Filter Demo 1";

    public void run(String[] args) {

        String filename = ((args.length > 0) ? args[0] : "lena.jpg");

        src = Imgcodecs.imread(filename, Imgcodecs.IMREAD_COLOR);
        if( src.empty() ) {
            System.out.println("Error opening image");
            System.out.println("Usage: ./Smoothing [image_name -- default ../data/lena.jpg] \n");
            System.exit(-1);
        }

        if( displayCaption( "Original Image" ) != 0 ) { System.exit(0); }

        dst = src.clone();
        if( displayDst( DELAY_CAPTION ) != 0 ) { System.exit(0); }

        /// Applying Homogeneous blur
        if( displayCaption( "Homogeneous Blur" ) != 0 ) { System.exit(0); }

        //! [blur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));
            displayDst(DELAY_BLUR);
        }
        //! [blur]

        /// Applying Gaussian blur
        if( displayCaption( "Gaussian Blur" ) != 0 ) { System.exit(0); }

        //! [gaussianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.GaussianBlur(src, dst, new Size(i, i), 0, 0);
            displayDst(DELAY_BLUR);
        }
        //! [gaussianblur]

        /// Applying Median blur
        if( displayCaption( "Median Blur" ) != 0 ) { System.exit(0); }

        //! [medianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.medianBlur(src, dst, i);
            displayDst(DELAY_BLUR);
        }
        //! [medianblur]

        /// Applying Bilateral Filter
        if( displayCaption( "Bilateral Blur" ) != 0 ) { System.exit(0); }

        //![bilateralfilter]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.bilateralFilter(src, dst, i, i * 2, i / 2);
            displayDst(DELAY_BLUR);
        }
        //![bilateralfilter]

        /// Done
        displayCaption( "Done!" );

        System.exit(0);
    }

    int displayCaption(String caption) {
        dst = Mat.zeros(src.size(), src.type());
        Imgproc.putText(dst, caption,
                new Point(src.cols() / 4, src.rows() / 2),
                Core.FONT_HERSHEY_COMPLEX, 1, new Scalar(255, 255, 255));

        return displayDst(DELAY_CAPTION);
    }

    int displayDst(int delay) {
        HighGui.imshow( windowName, dst );
        int c = HighGui.waitKey( delay );
        if (c >= 0) { return -1; }
        return 0;
    }
}


public class Smoothing_Images_CLASS {
 public static void main(String[] args) {
        // Load the native library.
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        new SmoothingRun().run(args);
    }
}

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EV3 to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow … . . . My program ...

 package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;
import lejos.hardware.ev3.EV3;
import lejos.hardware.lcd.Font;
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Email    //    CLASS

 {    ///////////////////////////////////////////////////////////////////////////
                                                                               //          
 private static final int WIDTH = 160;                                         //   
 private static final int HEIGHT = 120;                                        //  
 //    private static final String WIDTH = null;                              //
                                                                              //
                                                                              //
 public static void main(String[] args)    //  METHOD                         //
                                                                               //          
     {    //////////////////////////////////////////////////////////    //
                                                                  //    //                 
Brick MyBrick;                                                    //     //            
MyBrick = BrickFinder.getLocal();                                 //     //         
String MyType;                                                    //     //         
MyType = MyBrick.getType();                                       //     //      
String MyName;                                                    //     //      
MyName = MyBrick.getName();                                       //     //     
LocalBTDevice MyIPAddressS;                                       //     //         
MyIPAddressS = MyBrick.getBluetoothDevice();                      //     //          
EV3 School_red_EV3;                                               //     //         
School_red_EV3 = (EV3) BrickFinder.getLocal();                    //    //         
Video Insten;                                                     //    //          
Insten = School_red_EV3.getVideo();                               //    //          
GraphicsLCD GraphicsScreen;                                       //    //
GraphicsScreen = School_red_EV3.getGraphicsLCD();                 //    //          
GraphicsScreen.setFont(Font.getSmallFont());                      //    //
try {                                                             //    //            
Insten.open(WIDTH,HEIGHT);                                        //    //             
} catch (IOException e) {                                         //    //         
// TODO Auto-generated catch block                                //    //         
e.printStackTrace();                                              //    //   
}                                                                 //    //   
byte[] Still;                                                     //    //       
Still = Insten.createFrame();                                    //    //        
YUYVImage img;                                                   //    //        
img = new YUYVImage(Still, WIDTH, HEIGHT);                       //    //   
int threshold = 128;                                             //    //            
GraphicsScreen.clear();                                          //    //   
GraphicsScreen.refresh();                                        //    // 
while (!Button.ESCAPE.isDown())                                  //    //       
{    ////////////////////////////////////////////                //    //                
try {                                                         //    //                
Insten.grabFrame(Still);                                                 //    //           
} catch (IOException e) {                                                //    //
// TODO Auto-generated catch block                                       //    //
e.printStackTrace();                                                     //    //
}                                                                        //    //
threshold = img.getMeanY();                                              //    //   
img.display(GraphicsScreen, 0, 0, threshold);                     //    //
}    ///////                                                                     ////
try {                                                                            ////
Insten.close();                                                                  ////
} catch (IOException e) {                                                        ////
// TODO Auto-generated catch block                                               ////
e.printStackTrace();                                                             ////
}                                                                                ////
GraphicsScreen.clear();                                                          ////
Mat mat = null;                                                                  ////
//Mat src = Still;                                                               ////
String filename = ((args.length > 0) ? args[0] : "lena.jpg");         ////
Object H;                                                                             //
mat = Imgcodecs.imdecode(new MatOfByte(Still), Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);    //
//    Mat newImg = Mat(HEIGHT, WIDTH, CV_8UC1, Still + FRAMEINFO_SIZEF );
//    mat.put(0, 0, Still);    //    Error on this line                //    //   
Mat src = mat;                                                   //    // 
Mat dst = null;                                                  //    //
double i = 5;                                                    //    //
Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));       //    //
 }    //////////////////////////////////////////////////////////////    //
                                                                               //
 }     /////////////////////////////////////////////////////

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
 private static final int WIDTH = 160;                //   
 private static final int HEIGHT = 120;                             
 public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
Brick MyBrick;                                                                
MyBrick = BrickFinder.getLocal();                                          
String MyType;                                                    
MyType = MyBrick.getType();                                      
if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    /////////////////////////////////////////                            
         TODO Auto-generated catch block            //                        
        e.printStackTrace();                        //                            
        System.out.println("Plug in camera");       //                     
        System.err.println("Press any key ...");    //                      
        System.out.println("");                     //                      
        System.out.println("");                     //                       
        System.out.println("");                     //                     
        System.out.println("");                     //                     
        System.out.println("");                     //                      
        Button.waitForAnyPress();                   //                   
        main(args);                                 //                   
        }    /////////////////////////////////////////        
        byte[] Still;                                                   
        Still = Insten.createFrame();                                    
        YUYVImage img;                                                     
        img = new YUYVImage(Still, WIDTH, HEIGHT);                            
        int threshold = 128;                                                        
        boolean auto = true;                                             
        System.out.println("3/6/2018");                                   
        System.out.println(MyType);                                    
        System.out.println(MyName);                                     
        System.out.println(MyIPAddressS);                        
        System.err.println("Press any key ...");                 
        Button.waitForAnyPress();                                
        System.out.println("");                                  
        System.out.println("");                                
        System.out.println("");                                  
        System.out.println("");                                   
        System.out.println("");                                
        System.out.println("");                               
        System.out.println("");                               
        GraphicsScreen.clear();                                 
        GraphicsScreen.refresh();                                   
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    //////////////////////////////////////////////////    
         try {                                               //
        Insten.grabFrame(Still);                             // 
    } catch (IOException e) {                                //
     // TODO Auto-generated catch block                      //
           e.printStackTrace();                              //
        main(args);                                          //
           }                                                 //
                        if (auto)                          //
                threshold = img.getMeanY() + 10;             //
            img.display(GraphicsScreen, 0, 0, threshold);    //
            if (Button.UP.isDown())                          //
             {    /////////////////////////                  // 
                 threshold++;            //                  //    
                 if (threshold > 255)    //                  // 
                     threshold = 255;    //                  //    
                 auto = false;           //                  //      
             }    /////////////////////////                  //  
             if (Button.DOWN.isDown())                       //   
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //     
                     threshold = 0;    //                    //      
                 auto = false;         //                    //        
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                        
          GraphicsScreen.clear();                                              
           }                               
 }     ///

.

OpenCV Sample

package openCV_340_PACKAGE;

import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;




class SmoothingRun {

    ///  Global Variables
    int DELAY_CAPTION = 1500;
    int DELAY_BLUR = 100;
    int MAX_KERNEL_LENGTH = 31;

    Mat src = new Mat(), dst = new Mat();
    String windowName = "Filter Demo 1";

    public void run(String[] args) {

        String filename = ((args.length > 0) ? args[0] : "lena.jpg");

        src = Imgcodecs.imread(filename, Imgcodecs.IMREAD_COLOR);
        if( src.empty() ) {
            System.out.println("Error opening image");
            System.out.println("Usage: ./Smoothing [image_name -- default ../data/lena.jpg] \n");
            System.exit(-1);
        }

        if( displayCaption( "Original Image" ) != 0 ) { System.exit(0); }

        dst = src.clone();
        if( displayDst( DELAY_CAPTION ) != 0 ) { System.exit(0); }

        /// Applying Homogeneous blur
        if( displayCaption( "Homogeneous Blur" ) != 0 ) { System.exit(0); }

        //! [blur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));
            displayDst(DELAY_BLUR);
        }
        //! [blur]

        /// Applying Gaussian blur
        if( displayCaption( "Gaussian Blur" ) != 0 ) { System.exit(0); }

        //! [gaussianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.GaussianBlur(src, dst, new Size(i, i), 0, 0);
            displayDst(DELAY_BLUR);
        }
        //! [gaussianblur]

        /// Applying Median blur
        if( displayCaption( "Median Blur" ) != 0 ) { System.exit(0); }

        //! [medianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.medianBlur(src, dst, i);
            displayDst(DELAY_BLUR);
        }
        //! [medianblur]

        /// Applying Bilateral Filter
        if( displayCaption( "Bilateral Blur" ) != 0 ) { System.exit(0); }

        //![bilateralfilter]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.bilateralFilter(src, dst, i, i * 2, i / 2);
            displayDst(DELAY_BLUR);
        }
        //![bilateralfilter]

        /// Done
        displayCaption( "Done!" );

        System.exit(0);
    }

    int displayCaption(String caption) {
        dst = Mat.zeros(src.size(), src.type());
        Imgproc.putText(dst, caption,
                new Point(src.cols() / 4, src.rows() / 2),
                Core.FONT_HERSHEY_COMPLEX, 1, new Scalar(255, 255, 255));

        return displayDst(DELAY_CAPTION);
    }

    int displayDst(int delay) {
        HighGui.imshow( windowName, dst );
        int c = HighGui.waitKey( delay );
        if (c >= 0) { return -1; }
        return 0;
    }
}


public class Smoothing_Images_CLASS {
 public static void main(String[] args) {
        // Load the native library.
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        new SmoothingRun().run(args);
    }
}

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EV3 to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow … . . . My program ...

 package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;
lejos.hardware.LocalBTDevice;......//    PACKAGE
import lejos.hardware.ev3.EV3;
lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;
lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Email    //    CLASS

 {    ///////////////////////////////////////////////////////////////////////////
                                                                               //          
//
 private static final int WIDTH = 160;                                         //   
//
 private static final int HEIGHT = 120;                                        //  
//
 //    private static final String WIDTH = null;                              //
                                                                              //
                                                                              //
 public static void main(String[] args)    //  METHOD                         //
                                                                               //          
//
     {    ////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////    //
                                                                  //    //                 
   //    //
Brick MyBrick;                                                    //     //            
   //    //
MyBrick = BrickFinder.getLocal();                                 //     //         
   //    //
String MyType;                                                    //     //         
   //    //
MyType = MyBrick.getType();                                       //     //      
   //    //
String MyName;                                                    //     //      
   //    //
MyName = MyBrick.getName();                                       //     //     
   //    //
LocalBTDevice MyIPAddressS;                                       //     //         
   //    //
MyIPAddressS = MyBrick.getBluetoothDevice();                      //     //          
   //    //
EV3 School_red_EV3;                                               //     //         
   //    //
School_red_EV3 = (EV3) BrickFinder.getLocal();                    //    //         
   //    //
Video Insten;                                                     //    //          
   //    //
Insten = School_red_EV3.getVideo();                               //    //          
   //    //
GraphicsLCD GraphicsScreen;                                        //    //
GraphicsScreen = School_red_EV3.getGraphicsLCD();                 //    //          
   //    //
GraphicsScreen.setFont(Font.getSmallFont());                       //    //
try {                                                             //    //            
   //    //
Insten.open(WIDTH,HEIGHT);                                        //    //             
   //    //
} catch (IOException e) {                                         //    //         
   //    //
// TODO Auto-generated catch block                                //    //         
   //    //
e.printStackTrace();                                              //    //   
   //    //
}                                                                 //    //   
   //    //
byte[] Still;                                                     //    //        //    //   
Still = Insten.createFrame();                                    //    //          //    //   
YUYVImage img;                                                   //    //         //    //    
img = new YUYVImage(Still, WIDTH, HEIGHT);                        //    //   
int threshold = 128;                                              //    //            
GraphicsScreen.clear();                                           //    //   
GraphicsScreen.refresh();                                         //    // 
while (!Button.ESCAPE.isDown())                                   //    //       
{    ////////////////////////////////////////////                 //    //                
try {                                                          //    //                
Insten.grabFrame(Still);                                                 //    //           
} catch (IOException e) {                                                //    //
// TODO Auto-generated catch block                                       //    //
e.printStackTrace();                                                     //    //
}                                                                        //    //
threshold = img.getMeanY();                                              //    //   
img.display(GraphicsScreen, 0, 0, threshold);                            //    //
}    ///////                                                                     ////
try {                                                                            ////
Insten.close();                                                                  ////
} catch (IOException e) {                                                        ////
// TODO Auto-generated catch block                                               ////
e.printStackTrace();                                                             ////
}                                                                                ////
GraphicsScreen.clear();                                                          ////
Mat mat = null;                                                                  ////
//Mat src = Still;                                                               ////
String filename = ((args.length > 0) ? args[0] : "lena.jpg");        ////
Object H;                                                                             //
mat = Imgcodecs.imdecode(new MatOfByte(Still), Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);    //
//    Mat newImg = Mat(HEIGHT, WIDTH, CV_8UC1, Still + FRAMEINFO_SIZEF );
);  //      //
//    mat.put(0, 0, Still);    //    Error on this line                //    //   
     //        //
Mat src = mat;                                                   //    // 
           //         //
Mat dst = null;                                                  //            //          //
double i = 5;                                                    //            //           //
Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));       //            //             //
}    ////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////             //
                                                                                //
 }     /////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
 private static final int WIDTH = 160;                //   
 private static final int HEIGHT = 120;                             
 public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
Brick MyBrick;                                                                
MyBrick = BrickFinder.getLocal();                                          
String MyType;                                                    
MyType = MyBrick.getType();                                      
if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    /////////////////////////////////////////                            
         TODO Auto-generated catch block            //                        
        e.printStackTrace();                        //                            
        System.out.println("Plug in camera");       //                     
        System.err.println("Press any key ...");    //                      
        System.out.println("");                     //                      
        System.out.println("");                     //                       
        System.out.println("");                     //                     
        System.out.println("");                     //                     
        System.out.println("");                     //                      
        Button.waitForAnyPress();                   //                   
        main(args);                                 //                   
        }    /////////////////////////////////////////        
        byte[] Still;                                                   
        Still = Insten.createFrame();                                    
        YUYVImage img;                                                     
        img = new YUYVImage(Still, WIDTH, HEIGHT);                            
        int threshold = 128;                                                        
        boolean auto = true;                                             
        System.out.println("3/6/2018");                                   
        System.out.println(MyType);                                    
        System.out.println(MyName);                                     
        System.out.println(MyIPAddressS);                        
        System.err.println("Press any key ...");                 
        Button.waitForAnyPress();                                
        System.out.println("");                                  
        System.out.println("");                                
        System.out.println("");                                  
        System.out.println("");                                   
        System.out.println("");                                
        System.out.println("");                               
        System.out.println("");                               
        GraphicsScreen.clear();                                 
        GraphicsScreen.refresh();                                   
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    //////////////////////////////////////////////////    
         try {                                               //
        Insten.grabFrame(Still);                             // 
    } catch (IOException e) {                                //
     // TODO Auto-generated catch block                      //
           e.printStackTrace();                              //
        main(args);                                          //
           }                                                 //
                        if (auto)                          //
                threshold = img.getMeanY() + 10;             //
            img.display(GraphicsScreen, 0, 0, threshold);    //
            if (Button.UP.isDown())                          //
             {    /////////////////////////                  // 
                 threshold++;            //                  //    
                 if (threshold > 255)    //                  // 
                     threshold = 255;    //                  //    
                 auto = false;           //                  //      
             }    /////////////////////////                  //  
             if (Button.DOWN.isDown())                       //   
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //     
                     threshold = 0;    //                    //      
                 auto = false;         //                    //        
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                        
          GraphicsScreen.clear();                                              
           }                               
 }     ///

.

OpenCV Sample

package openCV_340_PACKAGE;

import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;




class SmoothingRun {

    ///  Global Variables
    int DELAY_CAPTION = 1500;
    int DELAY_BLUR = 100;
    int MAX_KERNEL_LENGTH = 31;

    Mat src = new Mat(), dst = new Mat();
    String windowName = "Filter Demo 1";

    public void run(String[] args) {

        String filename = ((args.length > 0) ? args[0] : "lena.jpg");

        src = Imgcodecs.imread(filename, Imgcodecs.IMREAD_COLOR);
        if( src.empty() ) {
            System.out.println("Error opening image");
            System.out.println("Usage: ./Smoothing [image_name -- default ../data/lena.jpg] \n");
            System.exit(-1);
        }

        if( displayCaption( "Original Image" ) != 0 ) { System.exit(0); }

        dst = src.clone();
        if( displayDst( DELAY_CAPTION ) != 0 ) { System.exit(0); }

        /// Applying Homogeneous blur
        if( displayCaption( "Homogeneous Blur" ) != 0 ) { System.exit(0); }

        //! [blur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));
            displayDst(DELAY_BLUR);
        }
        //! [blur]

        /// Applying Gaussian blur
        if( displayCaption( "Gaussian Blur" ) != 0 ) { System.exit(0); }

        //! [gaussianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.GaussianBlur(src, dst, new Size(i, i), 0, 0);
            displayDst(DELAY_BLUR);
        }
        //! [gaussianblur]

        /// Applying Median blur
        if( displayCaption( "Median Blur" ) != 0 ) { System.exit(0); }

        //! [medianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.medianBlur(src, dst, i);
            displayDst(DELAY_BLUR);
        }
        //! [medianblur]

        /// Applying Bilateral Filter
        if( displayCaption( "Bilateral Blur" ) != 0 ) { System.exit(0); }

        //![bilateralfilter]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.bilateralFilter(src, dst, i, i * 2, i / 2);
            displayDst(DELAY_BLUR);
        }
        //![bilateralfilter]

        /// Done
        displayCaption( "Done!" );

        System.exit(0);
    }

    int displayCaption(String caption) {
        dst = Mat.zeros(src.size(), src.type());
        Imgproc.putText(dst, caption,
                new Point(src.cols() / 4, src.rows() / 2),
                Core.FONT_HERSHEY_COMPLEX, 1, new Scalar(255, 255, 255));

        return displayDst(DELAY_CAPTION);
    }

    int displayDst(int delay) {
        HighGui.imshow( windowName, dst );
        int c = HighGui.waitKey( delay );
        if (c >= 0) { return -1; }
        return 0;
    }
}


public class Smoothing_Images_CLASS {
 public static void main(String[] args) {
        // Load the native library.
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        new SmoothingRun().run(args);
    }
}

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EV3 to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow … . . . My program ...

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;......// lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Email    //    CLASS

 {    ///////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////
                                                                           //
 private static final int WIDTH = 160;                                      //
 private static final int HEIGHT = 120;                                     //
 //    private static final String WIDTH = null;                            //
                                                                            //
                                                                            //
 public static void main(String[] args)    //  METHOD                       //
                                                                            //
     {    /////////////////////////////////////////////////////////////    //
                                                                     //    //
Brick MyBrick;                                                       //    //
MyBrick = BrickFinder.getLocal();                                    //    //
String MyType;                                                       //    //
MyType = MyBrick.getType();                                          //    //
String MyName;                                                       //    //
MyName = MyBrick.getName();                                          //    //
LocalBTDevice MyIPAddressS;                                          //    //
MyIPAddressS = MyBrick.getBluetoothDevice();                         //    //
EV3 School_red_EV3;                                                  //    //
School_red_EV3 = (EV3) BrickFinder.getLocal();                       //    //
Video Insten;                                                        //    //
Insten = School_red_EV3.getVideo();                                  //    //
GraphicsLCD GraphicsScreen;                                          //    //
GraphicsScreen = School_red_EV3.getGraphicsLCD();                    //    //
GraphicsScreen.setFont(Font.getSmallFont());                         //    //
try {                                                                //    //
Insten.open(WIDTH,HEIGHT);                                           //    //
} catch (IOException e) {                                            //    //
// TODO Auto-generated catch block                                   //    //
e.printStackTrace();                                                 //    //
}                                                                    //    //
byte[] Still;                                                        //    //   
Still = Insten.createFrame();                                        //    //   
YUYVImage img;                                                       //    //    
img = new YUYVImage(Still, WIDTH, HEIGHT);                           //    //   
int threshold = 128;                                                 //    //            
GraphicsScreen.clear();                                              //    //   
GraphicsScreen.refresh();                                            //    // 
while (!Button.ESCAPE.isDown())                                      //    //       
            //    //
{    ////////////////////////////////////////////                    //    //                
            //    //
try {                                                                //    //                
            //    //
Insten.grabFrame(Still);                                                 //    //           
        //    //
} catch (IOException e) {                                                 //    //
// TODO Auto-generated catch block                                        //    //
e.printStackTrace();                                                      //    //
}                                                                         //    //
threshold = img.getMeanY();                                              //    //   
        //    //
img.display(GraphicsScreen, 0, 0, threshold);                             //    //
}    ///////                                                                     ////
//    //
try {                                                                            ////
//    //
Insten.close();                                                                  ////
//    //
} catch (IOException e) {                                                        ////
//    //
// TODO Auto-generated catch block                                               ////
//    //
e.printStackTrace();                                                             ////
//    //
}                                                                                ////
//    //
GraphicsScreen.clear();                                                          ////
//    //
Mat mat = null;                                                                  ////
//    //
//Mat src = Still;                                                               ////
//    //
String filename = ((args.length > 0) ? args[0] : "lena.jpg");        ////
            //    //
Object H;                                                                         //    //
mat = Imgcodecs.imdecode(new MatOfByte(Still), Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);     //
//    Mat newImg = Mat(HEIGHT, WIDTH, CV_8UC1, Still + FRAMEINFO_SIZEF );  //         //    //
//    mat.put(0, 0, Still);    //    Error on this line                     //          //    //
Mat src = mat;                                                              //           //    //
Mat dst = null;                                                             //            //    //
double i = 5;                                                               //             //    //
Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));                  //               //    //
}    /////////////////////////////////////////////////////////////////////////          //////////////////////////////////////////////////////////////////////////////    //
                                                                                     //
 }     /////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////// ///

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
 private static final int WIDTH = 160;                //   
 private static final int HEIGHT = 120;                             
 public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
Brick MyBrick;                                                                
MyBrick = BrickFinder.getLocal();                                          
String MyType;                                                    
MyType = MyBrick.getType();                                      
if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    /////////////////////////////////////////                            
         TODO Auto-generated catch block            //                        
        e.printStackTrace();                        //                            
        System.out.println("Plug in camera");       //                     
        System.err.println("Press any key ...");    //                      
        System.out.println("");                     //                      
        System.out.println("");                     //                       
        System.out.println("");                     //                     
        System.out.println("");                     //                     
        System.out.println("");                     //                      
        Button.waitForAnyPress();                   //                   
        main(args);                                 //                   
        }    /////////////////////////////////////////        
        byte[] Still;                                                   
        Still = Insten.createFrame();                                    
        YUYVImage img;                                                     
        img = new YUYVImage(Still, WIDTH, HEIGHT);                            
        int threshold = 128;                                                        
        boolean auto = true;                                             
        System.out.println("3/6/2018");                                   
        System.out.println(MyType);                                    
        System.out.println(MyName);                                     
        System.out.println(MyIPAddressS);                        
        System.err.println("Press any key ...");                 
        Button.waitForAnyPress();                                
        System.out.println("");                                  
        System.out.println("");                                
        System.out.println("");                                  
        System.out.println("");                                   
        System.out.println("");                                
        System.out.println("");                               
        System.out.println("");                               
        GraphicsScreen.clear();                                 
        GraphicsScreen.refresh();                                   
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    //////////////////////////////////////////////////    
         try {                                               //
        Insten.grabFrame(Still);                             // 
    } catch (IOException e) {                                //
     // TODO Auto-generated catch block                      //
           e.printStackTrace();                              //
        main(args);                                          //
           }                                                 //
                        if (auto)                          //
                threshold = img.getMeanY() + 10;             //
            img.display(GraphicsScreen, 0, 0, threshold);    //
            if (Button.UP.isDown())                          //
             {    /////////////////////////                  // 
                 threshold++;            //                  //    
                 if (threshold > 255)    //                  // 
                     threshold = 255;    //                  //    
                 auto = false;           //                  //      
             }    /////////////////////////                  //  
             if (Button.DOWN.isDown())                       //   
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //     
                     threshold = 0;    //                    //      
                 auto = false;         //                    //        
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                        
          GraphicsScreen.clear();                                              
           }                               
 }     ///

.

OpenCV Sample

package openCV_340_PACKAGE;

import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;




class SmoothingRun {

    ///  Global Variables
    int DELAY_CAPTION = 1500;
    int DELAY_BLUR = 100;
    int MAX_KERNEL_LENGTH = 31;

    Mat src = new Mat(), dst = new Mat();
    String windowName = "Filter Demo 1";

    public void run(String[] args) {

        String filename = ((args.length > 0) ? args[0] : "lena.jpg");

        src = Imgcodecs.imread(filename, Imgcodecs.IMREAD_COLOR);
        if( src.empty() ) {
            System.out.println("Error opening image");
            System.out.println("Usage: ./Smoothing [image_name -- default ../data/lena.jpg] \n");
            System.exit(-1);
        }

        if( displayCaption( "Original Image" ) != 0 ) { System.exit(0); }

        dst = src.clone();
        if( displayDst( DELAY_CAPTION ) != 0 ) { System.exit(0); }

        /// Applying Homogeneous blur
        if( displayCaption( "Homogeneous Blur" ) != 0 ) { System.exit(0); }

        //! [blur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));
            displayDst(DELAY_BLUR);
        }
        //! [blur]

        /// Applying Gaussian blur
        if( displayCaption( "Gaussian Blur" ) != 0 ) { System.exit(0); }

        //! [gaussianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.GaussianBlur(src, dst, new Size(i, i), 0, 0);
            displayDst(DELAY_BLUR);
        }
        //! [gaussianblur]

        /// Applying Median blur
        if( displayCaption( "Median Blur" ) != 0 ) { System.exit(0); }

        //! [medianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.medianBlur(src, dst, i);
            displayDst(DELAY_BLUR);
        }
        //! [medianblur]

        /// Applying Bilateral Filter
        if( displayCaption( "Bilateral Blur" ) != 0 ) { System.exit(0); }

        //![bilateralfilter]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.bilateralFilter(src, dst, i, i * 2, i / 2);
            displayDst(DELAY_BLUR);
        }
        //![bilateralfilter]

        /// Done
        displayCaption( "Done!" );

        System.exit(0);
    }

    int displayCaption(String caption) {
        dst = Mat.zeros(src.size(), src.type());
        Imgproc.putText(dst, caption,
                new Point(src.cols() / 4, src.rows() / 2),
                Core.FONT_HERSHEY_COMPLEX, 1, new Scalar(255, 255, 255));

        return displayDst(DELAY_CAPTION);
    }

    int displayDst(int delay) {
        HighGui.imshow( windowName, dst );
        int c = HighGui.waitKey( delay );
        if (c >= 0) { return -1; }
        return 0;
    }
}


public class Smoothing_Images_CLASS {
 public static void main(String[] args) {
        // Load the native library.
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        new SmoothingRun().run(args);
    }
}

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EV3 to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow … . . . My program ...

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Email    //    CLASS

 {    ///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
                                                                                       //
 private static final int WIDTH = 160;                                      //
 private static final int HEIGHT = 120;                                     //
 //    private static final String WIDTH = null;                            //
                                                                            //
                                                                            //
 public static void main(String[] args)    //  METHOD                       //
                                                                            //
     {    ///////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////    //
                                                                      //    //
Brick MyBrick;                                                        //    //
MyBrick = BrickFinder.getLocal();                                     //    //
String MyType;                                                        //    //
MyType = MyBrick.getType();                                           //    //
String MyName;                                                        //    //
MyName = MyBrick.getName();                                           //    //
LocalBTDevice MyIPAddressS;                                           //    //
MyIPAddressS = MyBrick.getBluetoothDevice();                          //    //
EV3 School_red_EV3;                                                   //    //
School_red_EV3 = (EV3) BrickFinder.getLocal();                        //    //
Video Insten;                                                         //    //
Insten = School_red_EV3.getVideo();                                   //    //
GraphicsLCD GraphicsScreen;                                           //    //
GraphicsScreen = School_red_EV3.getGraphicsLCD();                     //    //
GraphicsScreen.setFont(Font.getSmallFont());                          //    //
try {                                                                 //    //
Insten.open(WIDTH,HEIGHT);                                            //    //
} catch (IOException e) {                                             //    //
// TODO Auto-generated catch block                                    //    //
e.printStackTrace();                                                  //    //
}                                                                     //    //
byte[] Still;                                                        //    //   
            //    //
Still = Insten.createFrame();                                        //    //   
            //    //
YUYVImage img;                                                       //    //    
            //    //
img = new YUYVImage(Still, WIDTH, HEIGHT);                           //    //   
            //    //
int threshold = 128;                                                 //    //            
            //    //
GraphicsScreen.clear();                                              //    //   
            //    //
GraphicsScreen.refresh();                                            //    // 
            //    //
while (!Button.ESCAPE.isDown())                                                  //    //
{    ////////////////////////////////////////////                                //    //
try {                                                                            //    //
Insten.grabFrame(Still);                                                         //    //
} catch (IOException e) {                                                        //    //
// TODO Auto-generated catch block                                               //    //
e.printStackTrace();                                                             //    //
}                                                                                //    //
threshold = img.getMeanY();                                                      //    //
img.display(GraphicsScreen, 0, 0, threshold);                                    //    //
}    ///////                                                                     //    //
try {                                                                            //    //
Insten.close();                                                                  //    //
} catch (IOException e) {                                                        //    //
// TODO Auto-generated catch block                                               //    //
e.printStackTrace();                                                             //    //
}                                                                                //    //
GraphicsScreen.clear();                                                          //    //
Mat mat = null;                                                                  //    //
//Mat src = Still;                                                               //    //
String filename = ((args.length > 0) ? args[0] : "lena.jpg");                    //    //
Object H;                                                                        //    //
mat = Imgcodecs.imdecode(new MatOfByte(Still), Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);     //
//    Mat newImg = Mat(HEIGHT, WIDTH, CV_8UC1, Still + FRAMEINFO_SIZEF );        //    //
//    mat.put(0, 0, Still);    //    Error on this line                          //    //
Mat src = mat;                                                                   //    //
Mat dst = null;                                                                  //    //
double i = 5;                                                                    //    //
Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));                       //    //
}    //////////////////////////////////////////////////////////////////////////////    //
                                                                                       //
 }     ////////////////////////////////////////////////////////////////////////////// ///
//////////////////////////////////////////////////////////////////////////////////

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
 private static final int WIDTH = 160;                //   
 private static final int HEIGHT = 120;                             
 public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
Brick MyBrick;                                                                
MyBrick = BrickFinder.getLocal();                                          
String MyType;                                                    
MyType = MyBrick.getType();                                      
if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    /////////////////////////////////////////                            
         TODO Auto-generated catch block            //                        
        e.printStackTrace();                        //                            
        System.out.println("Plug in camera");       //                     
        System.err.println("Press any key ...");    //                      
        System.out.println("");                     //                      
        System.out.println("");                     //                       
        System.out.println("");                     //                     
        System.out.println("");                     //                     
        System.out.println("");                     //                      
        Button.waitForAnyPress();                   //                   
        main(args);                                 //                   
        }    /////////////////////////////////////////        
        byte[] Still;                                                   
        Still = Insten.createFrame();                                    
        YUYVImage img;                                                     
        img = new YUYVImage(Still, WIDTH, HEIGHT);                            
        int threshold = 128;                                                        
        boolean auto = true;                                             
        System.out.println("3/6/2018");                                   
        System.out.println(MyType);                                    
        System.out.println(MyName);                                     
        System.out.println(MyIPAddressS);                        
        System.err.println("Press any key ...");                 
        Button.waitForAnyPress();                                
        System.out.println("");                                  
        System.out.println("");                                
        System.out.println("");                                  
        System.out.println("");                                   
        System.out.println("");                                
        System.out.println("");                               
        System.out.println("");                               
        GraphicsScreen.clear();                                 
        GraphicsScreen.refresh();                                   
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    //////////////////////////////////////////////////    
         try {                                               //
        Insten.grabFrame(Still);                             // 
    } catch (IOException e) {                                //
     // TODO Auto-generated catch block                      //
           e.printStackTrace();                              //
        main(args);                                          //
           }                                                 //
                        if (auto)                          //
                threshold = img.getMeanY() + 10;             //
            img.display(GraphicsScreen, 0, 0, threshold);    //
            if (Button.UP.isDown())                          //
             {    /////////////////////////                  // 
                 threshold++;            //                  //    
                 if (threshold > 255)    //                  // 
                     threshold = 255;    //                  //    
                 auto = false;           //                  //      
             }    /////////////////////////                  //  
             if (Button.DOWN.isDown())                       //   
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //     
                     threshold = 0;    //                    //      
                 auto = false;         //                    //        
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                        
          GraphicsScreen.clear();                                              
           }                               
 }     ///

.

OpenCV Sample

package openCV_340_PACKAGE;

import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;




class SmoothingRun {

    ///  Global Variables
    int DELAY_CAPTION = 1500;
    int DELAY_BLUR = 100;
    int MAX_KERNEL_LENGTH = 31;

    Mat src = new Mat(), dst = new Mat();
    String windowName = "Filter Demo 1";

    public void run(String[] args) {

        String filename = ((args.length > 0) ? args[0] : "lena.jpg");

        src = Imgcodecs.imread(filename, Imgcodecs.IMREAD_COLOR);
        if( src.empty() ) {
            System.out.println("Error opening image");
            System.out.println("Usage: ./Smoothing [image_name -- default ../data/lena.jpg] \n");
            System.exit(-1);
        }

        if( displayCaption( "Original Image" ) != 0 ) { System.exit(0); }

        dst = src.clone();
        if( displayDst( DELAY_CAPTION ) != 0 ) { System.exit(0); }

        /// Applying Homogeneous blur
        if( displayCaption( "Homogeneous Blur" ) != 0 ) { System.exit(0); }

        //! [blur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));
            displayDst(DELAY_BLUR);
        }
        //! [blur]

        /// Applying Gaussian blur
        if( displayCaption( "Gaussian Blur" ) != 0 ) { System.exit(0); }

        //! [gaussianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.GaussianBlur(src, dst, new Size(i, i), 0, 0);
            displayDst(DELAY_BLUR);
        }
        //! [gaussianblur]

        /// Applying Median blur
        if( displayCaption( "Median Blur" ) != 0 ) { System.exit(0); }

        //! [medianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.medianBlur(src, dst, i);
            displayDst(DELAY_BLUR);
        }
        //! [medianblur]

        /// Applying Bilateral Filter
        if( displayCaption( "Bilateral Blur" ) != 0 ) { System.exit(0); }

        //![bilateralfilter]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.bilateralFilter(src, dst, i, i * 2, i / 2);
            displayDst(DELAY_BLUR);
        }
        //![bilateralfilter]

        /// Done
        displayCaption( "Done!" );

        System.exit(0);
    }

    int displayCaption(String caption) {
        dst = Mat.zeros(src.size(), src.type());
        Imgproc.putText(dst, caption,
                new Point(src.cols() / 4, src.rows() / 2),
                Core.FONT_HERSHEY_COMPLEX, 1, new Scalar(255, 255, 255));

        return displayDst(DELAY_CAPTION);
    }

    int displayDst(int delay) {
        HighGui.imshow( windowName, dst );
        int c = HighGui.waitKey( delay );
        if (c >= 0) { return -1; }
        return 0;
    }
}


public class Smoothing_Images_CLASS {
 public static void main(String[] args) {
        // Load the native library.
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        new SmoothingRun().run(args);
    }
}

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EV3 to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow … . . . My program ...

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Email    //    CLASS

 {    ///////////////////////////////////////////////////////////////////////////////////
                                                                                       //
 private static final int WIDTH = 160;                                                 //
 private static final int HEIGHT = 120;                                                //
 //    private static final String WIDTH = null;                                       //
                                                                                       //
                                                                                       //
 public static void main(String[] args)    //  METHOD                                  //
                                                                                       //
     {    /////////////////////////////////////////////////////////////////////////    //
                                                                                 //    //
Brick MyBrick;                                                                   //    //
MyBrick = BrickFinder.getLocal();                                                //    //
String MyType;                                                                   //    //
MyType = MyBrick.getType();                                                      //    //
String MyName;                                                                   //    //
MyName = MyBrick.getName();                                                      //    //
LocalBTDevice MyIPAddressS;                                                      //    //
MyIPAddressS = MyBrick.getBluetoothDevice();                                     //    //
EV3 School_red_EV3;                                                              //    //
School_red_EV3 = (EV3) BrickFinder.getLocal();                                   //    //
Video Insten;                                                                    //    //
Insten = School_red_EV3.getVideo();                                              //    //
GraphicsLCD GraphicsScreen;                                                      //    //
GraphicsScreen = School_red_EV3.getGraphicsLCD();                                //    //
GraphicsScreen.setFont(Font.getSmallFont());                                     //    //
try {                                                                            //    //
Insten.open(WIDTH,HEIGHT);                                                       //    //
} catch (IOException e) {                                                        //    //
// TODO Auto-generated catch block                                               //    //
e.printStackTrace();                                                             //    //
}                                                                                //    //
byte[] Still;                                                                    //    //
Still = Insten.createFrame();                                                    //    //
YUYVImage img;                                                                   //    //
img = new YUYVImage(Still, WIDTH, HEIGHT);                                       //    //
int threshold = 128;                                                             //    //
GraphicsScreen.clear();                                                          //    //
GraphicsScreen.refresh();                                                        //    //
while (!Button.ESCAPE.isDown())                                                  //    //
{    ////////////////////////////////////////////                                //    //
try {                                                                            //    //
Insten.grabFrame(Still);                                                         //    //
} catch (IOException e) {                                                        //    //
// TODO Auto-generated catch block                                               //    //
e.printStackTrace();                                                             //    //
}                                                                                //    //
threshold = img.getMeanY();                                                      //    //
img.display(GraphicsScreen, 0, 0, threshold);                                    //    //
}    ///////                                                                     //    //
try {                                                                            //    //
Insten.close();                                                                  //    //
} catch (IOException e) {                                                        //    //
// TODO Auto-generated catch block                                               //    //
e.printStackTrace();                                                             //    //
}                                                                                //    //
GraphicsScreen.clear();                                                          //    //
Mat mat = null;                                                                  //    //
//Mat src = Still;                                                               //    //
String filename = ((args.length > 0) ? args[0] : "lena.jpg");                    //    //
Object H;                                                                        //    //
mat = Imgcodecs.imdecode(new MatOfByte(Still), Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);     //
//    Mat newImg = Mat(HEIGHT, WIDTH, CV_8UC1, Still + FRAMEINFO_SIZEF );        //    //
//    mat.put(0, 0, Still);    //    Error on this line                          //    //
Mat src = mat;                                                                   //    //
Mat dst = null;                                                                  //    //
double i = 5;                                                                    //    //
Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));                       //    //
}    //////////////////////////////////////////////////////////////////////////////    //
                                                                                       //
 }     //////////////////////////////////////////////////////////////////////////////////

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
 private static final int WIDTH = 160;                //   
 private static final int HEIGHT = 120;                             
 public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
Brick MyBrick;                                                                
MyBrick = BrickFinder.getLocal();                                          
String MyType;                                                    
MyType = MyBrick.getType();                                      
if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    /////////////////////////////////////////                            
         TODO Auto-generated catch block            //                        
        e.printStackTrace();                        //                            
        System.out.println("Plug in camera");       //                     
        System.err.println("Press any key ...");    //                      
        System.out.println("");                     //                      
        System.out.println("");                     //                       
        System.out.println("");                     //                     
        System.out.println("");                     //                     
        System.out.println("");                     //                      
        Button.waitForAnyPress();                   //                   
        main(args);                                 //                   
        }    /////////////////////////////////////////        
        byte[] Still;                                                   
        Still = Insten.createFrame();                                    
        YUYVImage img;                                                     
        img = new YUYVImage(Still, WIDTH, HEIGHT);                            
        int threshold = 128;                                                        
        boolean auto = true;                                             
        System.out.println("3/6/2018");                                   
        System.out.println(MyType);                                    
        System.out.println(MyName);                                     
        System.out.println(MyIPAddressS);                        
        System.err.println("Press any key ...");                 
        Button.waitForAnyPress();                                
        System.out.println("");                                  
        System.out.println("");                                
        System.out.println("");                                  
        System.out.println("");                                   
        System.out.println("");                                
        System.out.println("");                               
        System.out.println("");                               
        GraphicsScreen.clear();                                 
        GraphicsScreen.refresh();                                   
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    //////////////////////////////////////////////////    
         try {                                               //
        Insten.grabFrame(Still);                             // 
    } catch (IOException e) {                                //
     // TODO Auto-generated catch block                      //
           e.printStackTrace();                              //
        main(args);                                          //
           }                                                 //
                        if (auto)                          //
                threshold = img.getMeanY() + 10;             //
            img.display(GraphicsScreen, 0, 0, threshold);    //
            if (Button.UP.isDown())                          //
             {    /////////////////////////                  // 
                 threshold++;            //                  //    
                 if (threshold > 255)    //                  // 
                     threshold = 255;    //                  //    
                 auto = false;           //                  //      
             }    /////////////////////////                  //  
             if (Button.DOWN.isDown())                       //   
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //     
                     threshold = 0;    //                    //      
                 auto = false;         //                    //        
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                        
          GraphicsScreen.clear();                                              
           }                               
 }     ///

.

OpenCV Sample

package openCV_340_PACKAGE;

import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;




class SmoothingRun {

    ///  Global Variables
    int DELAY_CAPTION = 1500;
    int DELAY_BLUR = 100;
    int MAX_KERNEL_LENGTH = 31;

    Mat src = new Mat(), dst = new Mat();
    String windowName = "Filter Demo 1";

    public void run(String[] args) {

        String filename = ((args.length > 0) ? args[0] : "lena.jpg");

        src = Imgcodecs.imread(filename, Imgcodecs.IMREAD_COLOR);
        if( src.empty() ) {
            System.out.println("Error opening image");
            System.out.println("Usage: ./Smoothing [image_name -- default ../data/lena.jpg] \n");
            System.exit(-1);
        }

        if( displayCaption( "Original Image" ) != 0 ) { System.exit(0); }

        dst = src.clone();
        if( displayDst( DELAY_CAPTION ) != 0 ) { System.exit(0); }

        /// Applying Homogeneous blur
        if( displayCaption( "Homogeneous Blur" ) != 0 ) { System.exit(0); }

        //! [blur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));
            displayDst(DELAY_BLUR);
        }
        //! [blur]

        /// Applying Gaussian blur
        if( displayCaption( "Gaussian Blur" ) != 0 ) { System.exit(0); }

        //! [gaussianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.GaussianBlur(src, dst, new Size(i, i), 0, 0);
            displayDst(DELAY_BLUR);
        }
        //! [gaussianblur]

        /// Applying Median blur
        if( displayCaption( "Median Blur" ) != 0 ) { System.exit(0); }

        //! [medianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.medianBlur(src, dst, i);
            displayDst(DELAY_BLUR);
        }
        //! [medianblur]

        /// Applying Bilateral Filter
        if( displayCaption( "Bilateral Blur" ) != 0 ) { System.exit(0); }

        //![bilateralfilter]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.bilateralFilter(src, dst, i, i * 2, i / 2);
            displayDst(DELAY_BLUR);
        }
        //![bilateralfilter]

        /// Done
        displayCaption( "Done!" );

        System.exit(0);
    }

    int displayCaption(String caption) {
        dst = Mat.zeros(src.size(), src.type());
        Imgproc.putText(dst, caption,
                new Point(src.cols() / 4, src.rows() / 2),
                Core.FONT_HERSHEY_COMPLEX, 1, new Scalar(255, 255, 255));

        return displayDst(DELAY_CAPTION);
    }

    int displayDst(int delay) {
        HighGui.imshow( windowName, dst );
        int c = HighGui.waitKey( delay );
        if (c >= 0) { return -1; }
        return 0;
    }
}


public class Smoothing_Images_CLASS {
 public static void main(String[] args) {
        // Load the native library.
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        new SmoothingRun().run(args);
    }
}

How do I convert LEGO byte[] to OpenCV Mat.

I am trying to get the LEGO EV3 to work with OpenCV. I have a working LEGO sample and a working OpenCV sample. The problem comes when thing when I try to merge the two samples. The video protocols are different. The lego video input is byte[] and the OpenCV output is Mat. I have tried conversion code from the blogs but have not gotten anything to work. How do I convert LEGO byte [] to OpenCV Mat? The two samples and my program follow … . . . My program ...

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Email    //    CLASS

 {    ///////////////////////////////////////////////////////////////////////////////////
                                                                                       //
 private static final int WIDTH = 160;                                                 //
 private static final int HEIGHT = 120;                                                //
 //    private static final String WIDTH = null;                                       //
                                                                                       //
                                                                                       //
 public static void main(String[] args)    //  METHOD                                  //
                                                                                       //
     {    /////////////////////////////////////////////////////////////////////////    //
                                                                                 //    //
Brick MyBrick;                                                                   //    //
MyBrick = BrickFinder.getLocal();                                                //    //
String MyType;                                                                   //    //
MyType = MyBrick.getType();                                                      //    //
String MyName;                                                                   //    //
MyName = MyBrick.getName();                                                      //    //
LocalBTDevice MyIPAddressS;                                                      //    //
MyIPAddressS = MyBrick.getBluetoothDevice();                                     //    //
EV3 School_red_EV3;                                                              //    //
School_red_EV3 = (EV3) BrickFinder.getLocal();                                   //    //
Video Insten;                                                                    //    //
Insten = School_red_EV3.getVideo();                                              //    //
GraphicsLCD GraphicsScreen;                                                      //    //
GraphicsScreen = School_red_EV3.getGraphicsLCD();                                //    //
GraphicsScreen.setFont(Font.getSmallFont());                                     //    //
try {                                                                            //    //
Insten.open(WIDTH,HEIGHT);                                                       //    //
} catch (IOException e) {                                                        //    //
// TODO Auto-generated catch block                                               //    //
e.printStackTrace();                                                             //    //
}                                                                                //    //
byte[] Still;                                                                    //    //
Still = Insten.createFrame();                                                    //    //
YUYVImage img;                                                                   //    //
img = new YUYVImage(Still, WIDTH, HEIGHT);                                       //    //
int threshold = 128;                                                             //    //
GraphicsScreen.clear();                                                          //    //
GraphicsScreen.refresh();                                                        //    //
while (!Button.ESCAPE.isDown())                                                  //    //
{    ////////////////////////////////////////////                                //    //
try {                                                                            //    //
Insten.grabFrame(Still);                                                         //    //
} catch (IOException e) {                                                        //    //
// TODO Auto-generated catch block                                               //    //
e.printStackTrace();                                                             //    //
}                                                                                //    //
threshold = img.getMeanY();                                                      //    //
img.display(GraphicsScreen, 0, 0, threshold);                                    //    //
}    ///////                                                                     //    //
try {                                                                            //    //
Insten.close();                                                                  //    //
} catch (IOException e) {                                                        //    //
// TODO Auto-generated catch block                                               //    //
e.printStackTrace();                                                             //    //
}                                                                                //    //
GraphicsScreen.clear();                                                          //    //
Mat mat = null;                                                                  //    //
//Mat src = Still;                                                               //    //
String filename = ((args.length > 0) ? args[0] : "lena.jpg");                    //    //
Object H;                                                                        //    //
mat = Imgcodecs.imdecode(new MatOfByte(Still), Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);     //
//    Mat newImg = Mat(HEIGHT, WIDTH, CV_8UC1, Still + FRAMEINFO_SIZEF );        //    //
//    mat.put(0, 0, Still);    //    Error on this line                          //    //
Mat src = mat;                                                                   //    //
Mat dst = null;                                                                  //    //
double i = 5;                                                                    //    //
Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));                       //    //
}    //////////////////////////////////////////////////////////////////////////////    //
                                                                                       //
 }     //////////////////////////////////////////////////////////////////////////////////

LEGO sample

package my_PACKAGE;

import java.io.IOException;               //    PACKAGE

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Mat.*;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

import lejos.hardware.Brick;
import lejos.hardware.BrickFinder;        //    PACKAGE
import lejos.hardware.Button;             //    PACKAGE
import lejos.hardware.LocalBTDevice;      //    PACKAGE
import lejos.hardware.ev3.EV3;            //    PACKAGE
import lejos.hardware.lcd.Font;           //    PACKAGE
import lejos.hardware.lcd.GraphicsLCD;    //    PACKAGE
import lejos.hardware.video.Video;        //    PACKAGE
import lejos.hardware.video.YUYVImage;    //    PACKAGE

public class Black_White_Camera   //    CLASS    
 {    //////////////////////////////////////////////////////////////
 private static final int WIDTH = 160;                //   
 private static final int HEIGHT = 120;                             
 public static void main(String[] args)    //  METHOD      /       
 {    ////////////////////////////////////////////////////////////
Brick MyBrick;                                                                
MyBrick = BrickFinder.getLocal();                                          
String MyType;                                                    
MyType = MyBrick.getType();                                      
if (MyType != "EV3")                                                     
        {System.out.println("This is not an EV3");                                            
        }                                                                                        
        String MyName;                                                                
        MyName = MyBrick.getName();                                                 
        LocalBTDevice MyIPAddressS;                                                
        MyIPAddressS = MyBrick.getBluetoothDevice();                         
        EV3 School_red_EV3;                                                                
        School_red_EV3 = (EV3) BrickFinder.getLocal();                          
        Video Insten = School_red_EV3.getVideo();                             
        Video Insten;                                                                       
        Insten = School_red_EV3.getVideo();                                                

        //    GraphicsLCD GraphicsScreen = BrickFinder.getDefault().getGraphicsLCD();  
        GraphicsLCD GraphicsScreen;                                               
        GraphicsScreen = School_red_EV3.getGraphicsLCD();                                  
        GraphicsScreen.setFont(Font.getSmallFont());                                   
        try                                                                           
        {                                                                              
        Insten.open(WIDTH,HEIGHT);                                            
        }                                                                          
        catch (IOException e)                                                         
        {    /////////////////////////////////////////                            
         TODO Auto-generated catch block            //                        
        e.printStackTrace();                        //                            
        System.out.println("Plug in camera");       //                     
        System.err.println("Press any key ...");    //                      
        System.out.println("");                     //                      
        System.out.println("");                     //                       
        System.out.println("");                     //                     
        System.out.println("");                     //                     
        System.out.println("");                     //                      
        Button.waitForAnyPress();                   //                   
        main(args);                                 //                   
        }    /////////////////////////////////////////        
        byte[] Still;                                                   
        Still = Insten.createFrame();                                    
        YUYVImage img;                                                     
        img = new YUYVImage(Still, WIDTH, HEIGHT);                            
        int threshold = 128;                                                        
        boolean auto = true;                                             
        System.out.println("3/6/2018");                                   
        System.out.println(MyType);                                    
        System.out.println(MyName);                                     
        System.out.println(MyIPAddressS);                        
        System.err.println("Press any key ...");                 
        Button.waitForAnyPress();                                
        System.out.println("");                                  
        System.out.println("");                                
        System.out.println("");                                  
        System.out.println("");                                   
        System.out.println("");                                
        System.out.println("");                               
        System.out.println("");                               
        GraphicsScreen.clear();                                 
        GraphicsScreen.refresh();                                   
        String filename = ((args.length > 0) ? args[0] : "lena.jpg");     
        while (!Button.ESCAPE.isDown())                                     
        {    //////////////////////////////////////////////////    
         try {                                               //
        Insten.grabFrame(Still);                             // 
    } catch (IOException e) {                                //
     // TODO Auto-generated catch block                      //
           e.printStackTrace();                              //
        main(args);                                          //
           }                                                 //
                        if (auto)                          //
                threshold = img.getMeanY() + 10;             //
            img.display(GraphicsScreen, 0, 0, threshold);    //
            if (Button.UP.isDown())                          //
             {    /////////////////////////                  // 
                 threshold++;            //                  //    
                 if (threshold > 255)    //                  // 
                     threshold = 255;    //                  //    
                 auto = false;           //                  //      
             }    /////////////////////////                  //  
             if (Button.DOWN.isDown())                       //   
             {    ///////////////////////                    //
                 threshold--;          //                    //     
                 if (threshold < 0)    //                    //     
                     threshold = 0;    //                    //      
                 auto = false;         //                    //        
             }    ///////////////////////                    //               
             if (Button.ENTER.isDown())                      //             
             {    /////////////////                          //  
                 auto = true;    //                          //                 
             }    /////////////////                          //                      
         }    ////////////////////////////////////////////////                   
          try {                                                             
    Insten.close();                                          
    GraphicsScreen.clear();                                   
    } catch (IOException e) {                                      
    // TODO Auto-generated catch block                            
    e.printStackTrace();                                       
        }                                                        
          GraphicsScreen.clear();                                              
           }                               
 }     ///

.

OpenCV Sample

package openCV_340_PACKAGE;

import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;




class SmoothingRun {

    ///  Global Variables
    int DELAY_CAPTION = 1500;
    int DELAY_BLUR = 100;
    int MAX_KERNEL_LENGTH = 31;

    Mat src = new Mat(), dst = new Mat();
    String windowName = "Filter Demo 1";

    public void run(String[] args) {

        String filename = ((args.length > 0) ? args[0] : "lena.jpg");

        src = Imgcodecs.imread(filename, Imgcodecs.IMREAD_COLOR);
        if( src.empty() ) {
            System.out.println("Error opening image");
            System.out.println("Usage: ./Smoothing [image_name -- default ../data/lena.jpg] \n");
            System.exit(-1);
        }

        if( displayCaption( "Original Image" ) != 0 ) { System.exit(0); }

        dst = src.clone();
        if( displayDst( DELAY_CAPTION ) != 0 ) { System.exit(0); }

        /// Applying Homogeneous blur
        if( displayCaption( "Homogeneous Blur" ) != 0 ) { System.exit(0); }

        //! [blur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));
            displayDst(DELAY_BLUR);
        }
        //! [blur]

        /// Applying Gaussian blur
        if( displayCaption( "Gaussian Blur" ) != 0 ) { System.exit(0); }

        //! [gaussianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.GaussianBlur(src, dst, new Size(i, i), 0, 0);
            displayDst(DELAY_BLUR);
        }
        //! [gaussianblur]

        /// Applying Median blur
        if( displayCaption( "Median Blur" ) != 0 ) { System.exit(0); }

        //! [medianblur]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.medianBlur(src, dst, i);
            displayDst(DELAY_BLUR);
        }
        //! [medianblur]

        /// Applying Bilateral Filter
        if( displayCaption( "Bilateral Blur" ) != 0 ) { System.exit(0); }

        //![bilateralfilter]
        for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {
            Imgproc.bilateralFilter(src, dst, i, i * 2, i / 2);
            displayDst(DELAY_BLUR);
        }
        //![bilateralfilter]

        /// Done
        displayCaption( "Done!" );

        System.exit(0);
    }

    int displayCaption(String caption) {
        dst = Mat.zeros(src.size(), src.type());
        Imgproc.putText(dst, caption,
                new Point(src.cols() / 4, src.rows() / 2),
                Core.FONT_HERSHEY_COMPLEX, 1, new Scalar(255, 255, 255));

        return displayDst(DELAY_CAPTION);
    }

    int displayDst(int delay) {
        HighGui.imshow( windowName, dst );
        int c = HighGui.waitKey( delay );
        if (c >= 0) { return -1; }
        return 0;
    }
}


public class Smoothing_Images_CLASS {
 public static void main(String[] args) {
        // Load the native library.
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        new SmoothingRun().run(args);
    }
}