Oh god, solved the library problem, now got the initial problem again. I cleaned up my codes a bit, hopefully it helps. I'll repost it.
DisplayImage.cpp
Code:
#include "cv.h" //main OpenCV header
#include "highgui.h" //GUI header
#include "DisplayImageClass.h"
using namespace std;
int Display::initiate_display()
{
IplImage* img = cvLoadImage( "Viva.jpg" );
cvNamedWindow( "Viva La Vida", CV_WINDOW_AUTOSIZE );
cvShowImage("Viva La Vida", img);
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow( "Viva La Vida" );
return 0;
};
DisplayImageClass:
Code:
#ifndef DisplayImageClass
#define DisplayImageClass
#include "DisplayImage.cpp" // Include the main C/C++ program
#include "DisplayImageClass.h"
#include "highgui.h"
#include "cv.h"
using namespace std;
void Display::do_display() {
initiate_display(); // Calls the function "initiate_capture()" in main_capture.cpp
}
#endif
DisplayImageClass.h
Code:
#ifndef DISPLAYIMAGECLASS_H
#define DISPLAYIMAGECLASS_H
class Display
{
public:
void do_display();
int initiate_display();
};
#endif
DisplayImageClass.i
Code:
%module DisplayImageClass;
%{
#include "DisplayImageClass.h"
%}
%include "DisplayImageClass.h"
Makefile:
Code:
CC = g++
all: cpp java
cpp:
swig -java -c++ -package com.mySwig -outdir com/mySwig DisplayImageClass.i
g++ -fpic -c DisplayImageClass.cpp -I/home/baldie/Downloads/OpenCV-2.3.1/include/opencv -I/usr/lib/jvm/java-6-openjdk/include/ -L/usr/lib/pkgconfig -L/home/baldie/Downloads/OpenCV-2.3.1/include/opencv
g++ -fpic -c DisplayImageClass_wrap.cxx -I/usr/lib/jvm/java-6-openjdk/include/ -I/home/baldie/Downloads/OpenCV-2.3.1/include/opencv -L/usr/lib/pkgconfig -L/home/baldie/Downloads/OpenCV-2.3.1/include/opencv
g++ -shared DisplayImageClass.o DisplayImageClass_wrap.o -I/usr/local/pkgconfig -I/usr/lib/jvm/java-6-openjdk/include/ -L/usr/lib/pkgconfig -L/home/baldie/Downloads/OpenCV-2.3.1/include/opencv -I/home/baldie/Downloads/OpenCV-2.3.1/include/opencv -o libDisplayImageClass.so
java:
javac com/mySwig/*.java
javac com/myMain/*.java
java com.myMain.DisplayTest
clear:
@echo "Deleting excess files"
rm -rf DisplayImageClass.o libDisplayImageClass.so DisplayImageClass_wrap.o DisplayImageClass.java DisplayImageClassJNI.java DisplayImageClass_wrap.cxx *.class SWIGTYPE_p_p_char.java Display.java
echo "Done Deleting"
DisplayTest.java
Code:
package com.myMain;
import com.mySwig.Display;
public class DisplayTest {
DisplayTest() {
try{
System.loadLibrary("DisplayImageClass");
}
catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
System.exit(1);
}
}
public void doDisplay() {
Display disp = new Display();
disp.do_display();
}
public static void main(String args[]) {
DisplayTest dt = new DisplayTest();
dt.doDisplay();
}
}
Bookmarks