Saturday, January 19, 2013

Setting-up javaCV on NetBeans and Eclipse

JavaCV is a set of wrapper classes used for openCV. Using javaCV any C code used for Image Processing can be converted in to a java code. For a person who have an expertise knowledge on java and a little knowledge on C, javaCV will be very useful as he only have to worry about the logic of the code not the syntax. Following is a guide to install and configure javaCV in netbeans or eclipse environment.
  1. Install Microsoft Visual C++ Microsoft Visual C++ 2010 Redistributable Package (x86) or Microsoft Visual C++ 2010 Redistributable Package (x64) (If your system is 64 bit) 
  2. Download opencv 2.4.0 OpenCV windows SuperPack version 2.4.0 
      • Note- Opencv 2.4.1 does not work with this. It gives a linking error.
  3. Extract opencv to C: 
  4. Set up environment variables
    • 64-bit version of the JDK: C:\opencv\build\common\tbb\intel64\vc10\;C:\opencv\build\x64\vc10\bin\; 
    • 32-bit version of the JDK: C:\opencv\build\common\tbb\ia32\vc10\;C:\opencv\build\x86\vc10\bin\;                                       ”.
  5. Download and extract javacv Link. This contains 8 jar files
  6. When creating projects add those jar files to the libraries folder
    •  In netbeans right click Libraries and select ”add JAR/folder” and select above jar files.
    •  In eclipse right click the project folder and select properties. Select “java build path” and select the Libraries tab and add the required jar files.
  7. Check the following code. This captures an image from the web cam.
import com.googlecode.javacv.OpenCVFrameGrabber; 
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import static com.googlecode.javacv.cpp.opencv_highgui.*; 

public class CaptureImage {

private static void captureFrame() { 
  // 0-default camera, 1 - next...so on 
  final OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
  try { 
    grabber.start();
    IplImage img = grabber.grab();
    if (img != null) { 
      cvSaveImage("capture.jpg", img);
    }
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
}

public static void main(String[] args) { 
  captureFrame(); 

}
  • You can find the captured picture on the project folder. To change the camera change the number that is passed to the OpenCVFrameGrabber constructor.


Sutra Directory

21 comments:

  1. when i try this code after doing this steps,i have error that i cant resolve it .please help me
    C:\Users\MaJeSTiC\AppData\Local\Temp\javacpp867018211705\jniopencv_core.dll: Can't find dependent libraries

    ReplyDelete
  2. I got the same error when I used opencv 2.4.1 (as stated in step 2)
    But when I used 2.4.0 there was no error. Also check whether the step 4 is done correctly.

    ReplyDelete
  3. when i try this code after doing this steps, I used 2.4.0 ,i have error that i cant resolve it .please help me
    C:\Users\MaJeSTiC\AppData\Local\Temp\javacpp867018211705\jniopencv_core.dll: Can't find dependent libraries
    Please help me quickly

    ReplyDelete
  4. @nuwan
    I got the same error with 2.4.1.
    But was able to successfully run openCV using the above steps.
    Did you correctly set up environment variables ??

    ReplyDelete
  5. I've followed all the instructions you gave. But the error is-
    "java.lang.UnsatisfiedLinkError: jniopencv_core.dll: Can't find dependent libraries" can you please help me in this? It was kind of urgent.
    Thank you.

    ReplyDelete
  6. Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Jaimin\AppData\Local\Temp\javacpp824382310842\jniopencv_core.dll: Can't find dependent libraries

    ReplyDelete
    Replies
    1. Did you correctly set up environment variables ??

      Delete
  7. I am having same Error even after setting up environment variables perfectly. OpenCV is working perfectly but not JCV, nither using 2.4.8 nor 2.4.0

    ReplyDelete
    Replies
    1. May be a problem with the version of OpenCV. When I used 2.4.1 there was some error.

      Delete
  8. I was seen error "could not find the main class?"
    plz reply me...what i do?

    ReplyDelete
    Replies
    1. may be something wrong with the code.
      I did not get such an error

      Delete
  9. This is jonesdruman This blog was simply great post byb you. I really appreciate your blog. Really awesome blog I would like to know more about this. Please give some ideas about your blog. Thanks…………………………………….
    ICC T20 World Cup Opening Ceremony Date, Starting Time & Venue
    England Team Captain T20 World Cup 2016
    Cricket world cup live on hotstar

    ReplyDelete
  10. I like this a lot. Thank you for sharing. I'm always looking for upcycles like this. In the end, you don't know it was a shipping pallet to begin with!
    India Vs Pakistan Live Streaming
    India Vs Sri Lanka Live Streaming
    Australia Vs South Africa Live Streaming
    ICC T20 WC 2016 Live Cricket Streaming HD Online

    ReplyDelete