Подтвердить что ты не робот

HighGUI отсутствует в OpenCV 3.0.0 JAR

Я компилировал OpenCV 3.0.0 с поддержкой Java. Мой script был:

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

Я что-то пропустил во время установки?

4b9b3361

Ответ 1

Короткий ответ: больше нет модуля HighGUI в Java для версии 3.0.

Long One: функциональность в HighGUI была разделена на два дополнительных модуля:

  • videoio (VideoCapture, VideoWriter).
  • imgcodecs (imread/imwrite и друзья).

Поскольку нет функции GUI, открытой для Java, нет необходимости в том, чтобы иметь модуль HighGUI на Java.

Ответ 2

Миграция с OpenCV 2.x на 3.0.0 (Java)

Highgui.imread(fileName, Highgui.CV_LOAD_IMAGE_GRAYSCALE)
Highgui.imread(fileName)

становятся соответственно:

Imgcodecs.imread(fileName, Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE)
Imgcodecs.imread(fileName)

Кроме того, такие функции рисования, как:

Core.circle(..), Core.line(..), etc..

Были перенесены на:

Imgproc.circle(..), Imgproc.line(..)

Примечание Моменты, Huomoments отсутствуют в 3.0.0. Будет зафиксировано в 3.1 См. ошибка

Ответ 3

Вчера я нашел в конце введения http://docs.opencv.org/2.4/doc/tutorials/introduction/clojure_dev_intro/clojure_dev_intro.html ответ на мой вопрос:

API Java OpenCV не переносит функции модуля highgui в зависимости от Qt (например, namedWindow и imshow. Если вы хотите создать окна и показывать изображения в них, взаимодействуя с OpenCV от REPL, в настоящий момент вы остаетесь сами. Вы можете использовать Java Качайте, чтобы заполнить пробел.