bytedeco / javacv

Java interface to OpenCV, FFmpeg, and more
Other
7.61k stars 1.59k forks source link

Change log google code to javacv #134

Closed olyjosh closed 9 years ago

olyjosh commented 9 years ago

I'm new to javacv and the project code I'm laying my hands was writing when javacv was still hosted on google code. So I couldn't get where these classes and packages in the new javacv I just downloaded

import com.googlecode.javacv.cpp.; //import org.bytedeco.javacpp.; import com.googlecode.javacv.cpp.videoInputLib.*;

import static com.googlecode.javacv.cpp.opencvcore.; import static com.googlecode.javacv.cpp.opencvimgproc.; import static com.googlecode.javacv.cpp.opencvobjdetect.; import static com.googlecode.javacv.cpp.opencvhighgui.; import static com.googlecode.javacv.cpp.avutil.*;

saudet commented 9 years ago

There's a summary about all that here: http://bytedeco.org/news/2014/04/28/first-release/

olyjosh commented 9 years ago

Thanks for that, but I still can't compile my code as there is no part of the that I can really get these from

import org.bytedeco.javacpp.videoInputLib.*; private CvHaarClassifierCascade classifier; private CvMemStorage storage;

Any more change log some where

saudet commented 9 years ago

That looks alright. Could you provide the error that you get?

olyjosh commented 9 years ago

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniObjdetect in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1865) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1865) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1122) at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:536)Java Result: 1 BUILD SUCCESSFUL (total time: 13 seconds) at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:536)

saudet commented 9 years ago

That's probably related to ProGuard. Try to follow the instructions here: https://github.com/bytedeco/javacv/wiki/Configuring-Proguard-for-JavaCV

olyjosh commented 9 years ago

I guess proguard is only for androids. I'm actually developing a windows app and not android.

import org.bytedeco.javacpp.videoInputLib.*; private CvHaarClassifierCascade classifier; private CvMemStorage storage;

Most of these line are underlined red in Netbeans IDE - Like those classes doesn't exist in the java cv / open cv ... as the name that I'm using

saudet commented 9 years ago

Right, so update the imports. Details here, as previously mentioned: http://bytedeco.org/news/2014/04/28/first-release/

olyjosh commented 9 years ago

Like you earler redirect me to this link and I have done that. But one thing I'm sure of is ther are some changes that are not documented there on that page. Take a look at the image where I expanded the library using Netbeans IDE. I'm expecting "org.bytedeco.javacpp.videoInputLib" to be listed here. capture

But it wasn't. Correct me on this if I'm wrong

These were never documented on that link you gave for change logs private CvHaarClassifierCascade classifier; private CvMemStorage storage;

saudet commented 9 years ago

You're going to need to include in your class path the presets as well: https://github.com/bytedeco/javacpp-presets/

olyjosh commented 9 years ago

Thanks, javacv preset solve most of these. However, I have these lines of code according Dr. Andrew Davison's implementations on http://fivedots.coe.psu.ac.th/~ad/jg/nui08/index.html

These are not what they use to be 1. private IplImage picGrab(FrameGrabber grabber, int ID) { IplImage im = null; try { im = grabber.grab(); // take a snap } catch(Exception e) { System.out.println("Problem grabbing image for camera " + ID); } return im; } // end of picGrab()

In this case : grabber.grab(); doesn't return IplImage

2. public void paintComponent(Graphics g) /* Draw the image, the rectangle (and crosshairs) around a detected face, and the average ms snap time at the bottom left of the panel. Show the currently recognized face name at the bottom middle. This time does NOT include the face detection task. */ { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g;

if (snapIm != null)
  g2.drawImage(snapIm.getBufferedImage(), 0, 0, this);

drawRect(g2);
writeStats(g2);
writeName(g2);

} // end of paintComponent()

in this case IplImage im doesn't seems to have a method getBufferedImage() as it is in g2.drawImage(snapIm.getBufferedImage(), 0, 0, this);

Please what are my equivalence?

saudet commented 9 years ago

This is all explained here: http://bytedeco.org/news/2015/04/04/javacv-frame-converters/

olyjosh commented 9 years ago

Thanks