我正在使用Java支持编译OpenCV 3.0.0。我的剧本是:
mkdir /opt/opencv /opt/opencv/opencv-build
cd /opt/opencv
git clone https://github.com/Itseez/opencv.git
cd /opt/opencv/opencv-build
export OPENCV_INSTALL_PATH=/opt/opencv
export FFMPEG_PATH=/opt/ffmpeg/ffmpeg_build/lib
export LD_LIBRARY_PATH=$OPENCV_INSTALL_PATH/lib:$FFMPEG_PATH:/opt/opencv/opencv/3rdparty/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/opt/ffmpeg/ffmpeg_build/lib/pkgconfig
cmake28 -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX="/opt/opencv" \
-D OPENCV_EXTRA_C_FLAGS="-DHAVE_CAMV4L -DHAVE_CAMV4L2" \
-D WITH_OPENCL=OFF -D BUILD_SHARED_LIBS=OFF ../opencv
make
make install
在http://docs.opencv.org/doc/tutorials/introduction/desktop_java/java_dev_intro.html中与-D BUILD_SHARED_LIBS=OFF
进行了说明。
当我想测试安装时,我发现没有Highgui类,也没有路径。以下是我的opencv-300.jar
org.opencv
文件夹内容:
calib3d
core
features2d
imgcodecs
imgproc
ml
objdetect
photo
utils
video
videoio
我在安装过程中遗漏了什么吗?
答案 0 :(得分:68)
从OpenCV 2.x迁移到3.0.0(Java)
Highgui.imread(fileName, Highgui.CV_LOAD_IMAGE_GRAYSCALE)
Highgui.imread(fileName)
成为resp:
Imgcodecs.imread(fileName, Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE)
Imgcodecs.imread(fileName)
此外,绘图功能如:
Core.circle(..), Core.line(..), etc..
已被移至:
Imgproc.circle(..), Imgproc.line(..)
请注意 片刻,HuMoments在3.0.0中丢失。将在3.1中修复 见bug
答案 1 :(得分:62)
简答:Java for 3.0中不再有HighGUI
模块。
Long One:HighGUI
中的功能已分为两个附加模块:
由于没有向Java公开的GUI功能,因此不再需要Java中的HighGUI模块。
答案 2 :(得分:2)
昨天我在介绍结尾http://docs.opencv.org/2.4/doc/tutorials/introduction/clojure_dev_intro/clojure_dev_intro.html找到了我的问题的答案:
OpenCV Java API不包含highgui模块功能 取决于Qt(例如namedWindow和imshow。如果你想创建 窗口并在与OpenCV交互时将图像显示在其中 REPL,就在你离开自己的那一刻。你可以使用Java 摇摆以填补空白。