JavaCV사용하는데 사용한 메소드를 자바 에디터에서 자동으로 라이브러리 import하는 기능이 제대로 작동되지를 않는다. JavaCV를 사용한 사람들의 공통 증상인걸 보니 에디터의 문제는 아닌가보다.
약 10년전의 ‘고대자료’속에서 답을 찾아서 나중에 또 찾아보고자 정리하여 남겨둔다.
나중에 또 다른 누군가가 이 고대자료를 찾아서 들어올거라 생각하면.. 재미있잖아?
한국에 OpenCV쓰는 사람이 한 둘이 아닐텐데 전부다 C++로 사용을 하는지 자바는 정보가 없을뿐더러 놀랍게도 자바용 OpenCV는 인터넷 상에 떠도는 튜토리얼도 거의 없다. 튜토리얼은 이상하게도 대부분 JavaCV로 구현한 것들이다.
JavaCV 한 번에 import하기
import static com.googlecode.javacv.cpp.opencv_core.*; import static com.googlecode.javacv.cpp.opencv_highgui.*; import static com.googlecode.javacv.cpp.opencv_legacy.*;
위와 같이 별표를 찍어서 하위 메소드를 모두 import하면 에러 없이 모든 메소드가 import되어야 할 텐데. 그렇지 못하다.
이러면 사용한 메소드마다 일일히 import를 해야한다.
import static com.googlecode.javacv.cpp.opencv_highgui.cvLoadImage; import static com.googlecode.javacv.cpp.opencv_highgui.cvSaveImage; import static com.googlecode.javacv.cpp.opencv_core.cvReleaseImage; import static com.googlecode.javacv.cpp.opencv_core.cvGetSize; import static com.googlecode.javacv.cpp.opencv_highgui.cvShowImage; import static com.googlecode.javacv.cpp.opencv_core.IPL_DEPTH_8U; import static com.googlecode.javacv.cpp.opencv_highgui.CvCapture; import static com.googlecode.javacv.cpp.opencv_core.cvCreateImage; import static com.googlecode.javacv.cpp.opencv_highgui.cvWaitKey; import static com.googlecode.javacv.cpp.opencv_imgproc.cvCvtColor; import com.googlecode.javacv.CanvasFrame; import com.googlecode.javacv.FrameRecorder; import com.googlecode.javacv.OpenCVFrameGrabber; import com.googlecode.javacv.OpenCVFrameRecorder; import com.googlecode.javacv.cpp.opencv_core.IplImage; import com.googlecode.javacv.cpp.opencv_highgui; import com.googlecode.javacv.cpp.opencv_highgui.CvCapture; import static com.googlecode.javacv.cpp.opencv_imgproc.CV_BGR2GRAY; import static com.googlecode.javacv.cpp.opencv_imgproc.CV_BGR2HSV;
추가
위의 import한 메소드들은 내가 작성한 프로그램에서 사용한 메소드들이다.
이 외에도 정리하는 김에 다른 메소드들까지 정리해놓았다.
나중에 또 필요하면 여기서 찾아보고.
주요 출처
- https://purplecowd.tistory.com/entry/android-javaCV-%EC%85%8B%ED%8C%85-%EB%B0%A9%EB%B2%95
- https://blog.naver.com/kdr0923/220160192000
import static com.googlecode.javacv.cpp.opencv_highgui.CV_LOAD_IMAGE_GRAYSCALE; import static com.googlecode.javacv.cpp.opencv_imgproc.cvResize; import static com.googlecode.javacv.cpp.opencv_core.CvMat; import com.googlecode.javacpp.BytePointer; import com.googlecode.javacpp.Loader; import com.googlecode.javacpp.Pointer; import com.googlecode.javacv.cpp.opencv_core.CvFont; import com.googlecode.javacv.cpp.opencv_core.CvMemStorage; import com.googlecode.javacv.cpp.opencv_imgproc.IplConvKernel; import static com.googlecode.javacv.cpp.opencv_core.CV_FONT_HERSHEY_SIMPLEX; import static com.googlecode.javacv.cpp.opencv_core.cvClearMemStorage; import static com.googlecode.javacv.cpp.opencv_core.cvClone; import static com.googlecode.javacv.cpp.opencv_core.cvInitFont; import static com.googlecode.javacv.cpp.opencv_core.cvPoint; import static com.googlecode.javacv.cpp.opencv_core.cvRect; import static com.googlecode.javacv.cpp.opencv_core.cvResetImageROI; import static com.googlecode.javacv.cpp.opencv_core.cvSetImageROI; import static com.googlecode.javacv.cpp.opencv_core.cvSub; import static com.googlecode.javacv.cpp.opencv_core.cvZero; import static com.googlecode.javacv.cpp.opencv_highgui.CV_CAP_PROP_FRAME_HEIGHT; import static com.googlecode.javacv.cpp.opencv_highgui.CV_CAP_PROP_FRAME_WIDTH; import static com.googlecode.javacv.cpp.opencv_highgui.cvCreateCameraCapture; import static com.googlecode.javacv.cpp.opencv_highgui.cvDestroyAllWindows; import static com.googlecode.javacv.cpp.opencv_highgui.cvNamedWindow; import static com.googlecode.javacv.cpp.opencv_highgui.cvQueryFrame; import static com.googlecode.javacv.cpp.opencv_highgui.cvReleaseCapture; import static com.googlecode.javacv.cpp.opencv_highgui.cvSetCaptureProperty; import static com.googlecode.javacv.cpp.opencv_imgproc.cvBoundingRect; import com.googlecode.javacv.cpp.opencv_core.CvContour; import com.googlecode.javacv.cpp.opencv_core.CvSeq; import com.googlecode.javacv.cpp.opencv_objdetect.*; import static com.googlecode.javacv.cpp.opencv_core.*; import static com.googlecode.javacv.cpp.opencv_calib3d.*; import static com.googlecode.javacv.cpp.opencv_objdetect.*