diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 00000000..e1497f09 --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,91 @@ +name: Windows + +on: + pull_request: + push: + branches: + - dev + - release + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-windows: + runs-on: windows-2022 + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: '1.22' + cache: true + - name: Restore cached OpenCV source + uses: actions/cache/restore@v4 + id: cache-opencv-source + with: + key: opencv-source-490-windows-v1a + path: | + ./opencv/opencv-4.9.0 + ./opencv/opencv_contrib-4.9.0 + - name: Download OpenCV source + if: steps.cache-opencv-source.outputs.cache-hit != 'true' + shell: bash + run: | + mkdir -p ./opencv + curl -Lo ./opencv/opencv-4.9.0.zip https://github.com/opencv/opencv/archive/4.9.0.zip + curl -Lo ./opencv/opencv_contrib-4.9.0.zip https://github.com/opencv/opencv_contrib/archive/4.9.0.zip + - name: Extract OpenCV source + if: steps.cache-opencv-source.outputs.cache-hit != 'true' + shell: bash + run: | + cd ./opencv + mkdir -p opencv-4.9.0 + mkdir -p opencv_contrib-4.9.0 + 7z x opencv-4.9.0.zip + 7z x opencv_contrib-4.9.0.zip + - name: Save cached OpenCV source + uses: actions/cache/save@v4 + if: steps.cache-opencv-source.outputs.cache-hit != 'true' + with: + key: ${{ steps.cache-opencv-source.outputs.cache-primary-key }} + path: | + ./opencv/opencv-4.9.0 + ./opencv/opencv_contrib-4.9.0 + - name: Restore cached OpenCV build + uses: actions/cache/restore@v4 + id: cache-opencv-build + with: + key: opencv-build-490-windows-v1c + path: | + ./opencv/build + - name: Build OpenCV + if: steps.cache-opencv-build.outputs.cache-hit != 'true' + run: | + mkdir -p ./opencv/build + cd ./opencv/build + cmake -G "MinGW Makefiles" -DENABLE_CXX11=ON -DOPENCV_EXTRA_MODULES_PATH="../opencv_contrib-4.9.0/modules" -DBUILD_SHARED_LIBS=ON -DWITH_IPP=OFF -DWITH_MSMF=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=ON -DBUILD_opencv_java=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_python2=OFF -DBUILD_opencv_python3=OFF -DBUILD_DOCS=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_wechat_qrcode=ON -DCPU_DISPATCH= -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_OPENCL_D3D11_NV=OFF -DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE=int64_t -Wno-dev ../opencv-4.9.0 + cmake --build . --target install + - name: Save cached OpenCV build + uses: actions/cache/save@v4 + if: steps.cache-opencv-build.outputs.cache-hit != 'true' + with: + key: ${{ steps.cache-opencv-build.outputs.cache-primary-key }} + path: | + ./opencv/build + - name: Set GoCV env + run: | + go env + echo "CGO_CXXFLAGS=--std=c++11" >> $env:GITHUB_ENV + echo "CGO_CPPFLAGS=-I${env:GITHUB_WORKSPACE}\opencv\build\install\include" >> $env:GITHUB_ENV + echo "CGO_LDFLAGS=-L${env:GITHUB_WORKSPACE}\opencv\build\install\x64\mingw\lib -lopencv_core490 -lopencv_face490 -lopencv_videoio490 -lopencv_imgproc490 -lopencv_highgui490 -lopencv_imgcodecs490 -lopencv_objdetect490 -lopencv_features2d490 -lopencv_video490 -lopencv_dnn490 -lopencv_xfeatures2d490 -lopencv_plot490 -lopencv_tracking490 -lopencv_img_hash490 -lopencv_calib3d490 -lopencv_bgsegm490 -lopencv_photo490 -lopencv_aruco490 -lopencv_wechat_qrcode490 -lopencv_ximgproc490 -lopencv_xphoto490" >> $env:GITHUB_ENV + echo "${env:GITHUB_WORKSPACE}/opencv/build/install/x64/mingw/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - name: Test GoCV + run: | + go env + go test -v -tags="matprofile,customenv" . + - name: Test GoCV Contrib + run: | + go test -v -tags="matprofile,customenv" ./contrib diff --git a/Makefile b/Makefile index 8ae6c2e0..8c50e34a 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,8 @@ OPENCV_VERSION?=4.9.0 # Go version to use when building Docker image GOVERSION?=1.22.0 -# Temporary directory to put files into. -TMP_DIR?=/tmp/ +# Build directory to put files into. +BUILD_DIR?=/tmp # Build shared or static library BUILD_SHARED_LIBS?=ON @@ -76,23 +76,38 @@ deps_jetson: sudo apt-get -y install $(JETSON) # Download OpenCV source tarballs. -download: - rm -rf $(TMP_DIR)opencv - mkdir $(TMP_DIR)opencv - cd $(TMP_DIR)opencv +download-clean: + rm -rf $(BUILD_DIR)/opencv + mkdir -p $(BUILD_DIR) + mkdir -p $(BUILD_DIR)/opencv + +# Download OpenCV source tarballs. +download-opencv-source: + cd $(BUILD_DIR)/opencv curl -Lo opencv.zip https://github.com/opencv/opencv/archive/refs/tags/$(OPENCV_VERSION).zip - unzip -q opencv.zip curl -Lo opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/refs/tags/$(OPENCV_VERSION).zip + +# Download OpenCV source tarballs. +download-extract: + cd $(BUILD_DIR)/opencv + unzip -q opencv.zip unzip -q opencv_contrib.zip - rm opencv.zip opencv_contrib.zip cd - +download: download-clean download-opencv-source download-extract + # Download openvino source tarballs. download_openvino: sudo rm -rf /usr/local/dldt/ sudo rm -rf /usr/local/openvino/ sudo git clone https://github.com/openvinotoolkit/openvino -b 2019_R3.1 /usr/local/openvino/ +build-clean: + cd $(BUILD_DIR)/opencv/opencv-$(OPENCV_VERSION) + mkdir -p build + cd build + rm -rf * + # Build openvino. build_openvino_package: cd /usr/local/openvino/inference-engine @@ -111,53 +126,45 @@ build_openvino_package: cd - # Build OpenCV. -build: - cd $(TMP_DIR)opencv/opencv-$(OPENCV_VERSION) - mkdir build - cd build - rm -rf * - cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON .. +build: build-clean build_normal_task +build_normal_task: + cd $(BUILD_DIR)/opencv/opencv-$(OPENCV_VERSION)/build + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(BUILD_DIR)/opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON .. $(MAKE) -j $(shell nproc --all --ignore 1) $(MAKE) preinstall cd - # Build OpenCV on Raspbian with ARM hardware optimizations. -build_raspi: - cd $(TMP_DIR)opencv/opencv-$(OPENCV_VERSION) - mkdir build - cd build - rm -rf * +build_raspi: build-clean build_raspi_task +build_raspi_task: + cd $(BUILD_DIR)/opencv/opencv-$(OPENCV_VERSION)/build ifneq ($(shell uname -m | grep "aarch64"),) - cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=OFF -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D ENABLE_NEON=ON -D WITH_JASPER=OFF -D WITH_TBB=ON -D OPENCV_GENERATE_PKGCONFIG=ON .. + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(BUILD_DIR)/opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=OFF -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D ENABLE_NEON=ON -D WITH_JASPER=OFF -D WITH_TBB=ON -D OPENCV_GENERATE_PKGCONFIG=ON .. else - cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=OFF -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D ENABLE_NEON=ON -D ENABLE_VFPV3=ON -D WITH_JASPER=OFF -D OPENCV_GENERATE_PKGCONFIG=ON .. + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(BUILD_DIR)/opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=OFF -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D ENABLE_NEON=ON -D ENABLE_VFPV3=ON -D WITH_JASPER=OFF -D OPENCV_GENERATE_PKGCONFIG=ON .. endif $(MAKE) -j $(shell nproc --all --ignore 1) $(MAKE) preinstall cd - # Build OpenCV on Raspberry pi zero which has ARMv6. -build_raspi_zero: - cd $(TMP_DIR)opencv/opencv-$(OPENCV_VERSION) - mkdir build - cd build - rm -rf * - cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=OFF -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D ENABLE_VFPV2=ON -D WITH_JASPER=OFF -D OPENCV_GENERATE_PKGCONFIG=ON .. +build_raspi_zero: build-clean build_raspi_zero_task +build_raspi_zero_task: + cd $(BUILD_DIR)/opencv/opencv-$(OPENCV_VERSION)/build + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(BUILD_DIR)/opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=OFF -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D ENABLE_VFPV2=ON -D WITH_JASPER=OFF -D OPENCV_GENERATE_PKGCONFIG=ON .. $(MAKE) -j $(shell nproc --all --ignore 1) $(MAKE) preinstall cd - # Build OpenCV for NVidia Jetson with CUDA. -build_jetson: - cd $(TMP_DIR)opencv/opencv-$(OPENCV_VERSION) - mkdir build - cd build - rm -rf * +build_jetson: build-clean build_jetson_task +build_jetson_task: + cd $(BUILD_DIR)/opencv/opencv-$(OPENCV_VERSION)/build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D EIGEN_INCLUDE_PATH=/usr/include/eigen3 \ -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} \ - -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules \ + -D OPENCV_EXTRA_MODULES_PATH=$(BUILD_DIR)/opencv/opencv_contrib-$(OPENCV_VERSION)/modules \ -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=OFF -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO \ -D WITH_OPENCL=OFF \ -D WITH_CUDA=ON \ @@ -187,56 +194,46 @@ build_jetson: cd - # Build OpenCV with non-free contrib modules. -build_nonfree: - cd $(TMP_DIR)opencv/opencv-$(OPENCV_VERSION) - mkdir build - cd build - rm -rf * - cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_ENABLE_NONFREE=ON .. +build_nonfree: build-clean build_nonfree_task +build_nonfree_task: + cd $(BUILD_DIR)/opencv/opencv-$(OPENCV_VERSION)/build + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(BUILD_DIR)/opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_ENABLE_NONFREE=ON .. $(MAKE) -j $(shell nproc --all --ignore 1) $(MAKE) preinstall cd - # Build OpenCV with openvino. -build_openvino: - cd $(TMP_DIR)opencv/opencv-$(OPENCV_VERSION) - mkdir build - cd build - rm -rf * - cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D ENABLE_CXX11=ON -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D WITH_INF_ENGINE=ON -D InferenceEngine_DIR=/usr/local/dldt/inference-engine/build -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_ENABLE_NONFREE=ON .. +build_openvino: build-clean build_openvino_task +build_openvino_task: + cd $(BUILD_DIR)/opencv/opencv-$(OPENCV_VERSION)/build + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D ENABLE_CXX11=ON -D OPENCV_EXTRA_MODULES_PATH=$(BUILD_DIR)/opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D WITH_INF_ENGINE=ON -D InferenceEngine_DIR=/usr/local/dldt/inference-engine/build -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_ENABLE_NONFREE=ON .. $(MAKE) -j $(shell nproc --all --ignore 1) $(MAKE) preinstall cd - # Build OpenCV with cuda. -build_cuda: - cd $(TMP_DIR)opencv/opencv-$(OPENCV_VERSION) - mkdir build - cd build - rm -rf * - cmake -j $(shell nproc --all --ignore 1) -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_CUDA=ON -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DBUILD_opencv_cudacodec=OFF -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D CUDA_GENERATION=Auto .. +build_cuda: build-clean build_cuda_task +build_cuda_task: + cd $(BUILD_DIR)/opencv/opencv-$(OPENCV_VERSION)/build + cmake -j $(shell nproc --all --ignore 1) -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D OPENCV_EXTRA_MODULES_PATH=$(BUILD_DIR)/opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_CUDA=ON -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DBUILD_opencv_cudacodec=OFF -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D CUDA_GENERATION=Auto .. $(MAKE) -j $(shell nproc --all --ignore 1) $(MAKE) preinstall cd - # Build OpenCV statically linked -build_static: - cd $(TMP_DIR)opencv/opencv-$(OPENCV_VERSION) - mkdir build - cd build - rm -rf * - cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=OFF -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -DWITH_JASPER=OFF -DWITH_QT=OFF -DWITH_GTK=OFF -DWITH_FFMPEG=OFF -DWITH_TIFF=OFF -DWITH_WEBP=OFF -DWITH_PNG=OFF -DWITH_1394=OFF -DWITH_OPENJPEG=OFF -DOPENCV_GENERATE_PKGCONFIG=ON .. +build_static: build-clean build_static_task +build_static_task: + cd $(BUILD_DIR)/opencv/opencv-$(OPENCV_VERSION)/build + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=OFF -D OPENCV_EXTRA_MODULES_PATH=$(BUILD_DIR)/opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -DWITH_JASPER=OFF -DWITH_QT=OFF -DWITH_GTK=OFF -DWITH_FFMPEG=OFF -DWITH_TIFF=OFF -DWITH_WEBP=OFF -DWITH_PNG=OFF -DWITH_1394=OFF -DWITH_OPENJPEG=OFF -DOPENCV_GENERATE_PKGCONFIG=ON .. $(MAKE) -j $(shell nproc --all --ignore 1) $(MAKE) preinstall cd - # Build OpenCV with cuda. -build_all: - cd $(TMP_DIR)opencv/opencv-$(OPENCV_VERSION) - mkdir build - cd build - rm -rf * - cmake -j $(shell nproc --all --ignore 1) -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D ENABLE_CXX11=ON -D OPENCV_EXTRA_MODULES_PATH=$(TMP_DIR)opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D WITH_INF_ENGINE=ON -D InferenceEngine_DIR=/usr/local/dldt/inference-engine/build -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_CUDA=ON -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DBUILD_opencv_cudacodec=OFF -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D CUDA_GENERATION=Auto .. +build_all: build-clean build_all_task +build_all_task: + cd $(BUILD_DIR)/opencv/opencv-$(OPENCV_VERSION)/build + cmake -j $(shell nproc --all --ignore 1) -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -D ENABLE_CXX11=ON -D OPENCV_EXTRA_MODULES_PATH=$(BUILD_DIR)/opencv/opencv_contrib-$(OPENCV_VERSION)/modules -D WITH_INF_ENGINE=ON -D InferenceEngine_DIR=/usr/local/dldt/inference-engine/build -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=ON -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -D WITH_JASPER=OFF -D WITH_TBB=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_CUDA=ON -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DBUILD_opencv_cudacodec=OFF -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D CUDA_GENERATION=Auto .. $(MAKE) -j $(shell nproc --all --ignore 1) $(MAKE) preinstall cd - @@ -244,7 +241,7 @@ build_all: # Cleanup temporary build files. clean: go clean --cache - rm -rf $(TMP_DIR)opencv + rm -rf $(BUILD_DIR)/opencv # Cleanup old library files. sudo_pre_install_clean: @@ -298,7 +295,7 @@ install_all: deps download download_openvino sudo_pre_install_clean build_openvi # Install system wide. sudo_install: - cd $(TMP_DIR)opencv/opencv-$(OPENCV_VERSION)/build + cd $(BUILD_DIR)/opencv/opencv-$(OPENCV_VERSION)/build sudo $(MAKE) install sudo ldconfig cd - diff --git a/README.md b/README.md index 41c91bf8..c4f3af15 100644 --- a/README.md +++ b/README.md @@ -458,7 +458,7 @@ For example: set CGO_CXXFLAGS="--std=c++11" set CGO_CPPFLAGS=-IC:\opencv\build\install\include - set CGO_LDFLAGS=-LC:\opencv\build\install\x64\mingw\lib -lopencv_core481 -lopencv_face481 -lopencv_videoio481 -lopencv_imgproc481 -lopencv_highgui481 -lopencv_imgcodecs481 -lopencv_objdetect481 -lopencv_features2d481 -lopencv_video481 -lopencv_dnn481 -lopencv_xfeatures2d481 -lopencv_plot481 -lopencv_tracking481 -lopencv_img_hash481 + set CGO_LDFLAGS=-LC:\opencv\build\install\x64\mingw\lib -lopencv_core490 -lopencv_face490 -lopencv_videoio490 -lopencv_imgproc490 -lopencv_highgui490 -lopencv_imgcodecs490 -lopencv_objdetect490 -lopencv_features2d490 -lopencv_video490 -lopencv_dnn490 -lopencv_xfeatures2d490 -lopencv_plot490 -lopencv_tracking490 -lopencv_img_hash490 Please note that you will need to run these 3 lines of code one time in your current session in order to build or run the code, in order to setup the needed ENV variables. Once you have done so, you can execute code that uses GoCV with your custom environment like this: @@ -467,7 +467,7 @@ Please note that you will need to run these 3 lines of code one time in your cur ## Android There is some work in progress for running GoCV on Android using Gomobile. For information on how to install OpenCV/GoCV for Android, please see: -https://gist.github.com/ogero/c19458cf64bd3e91faae85c3ac887481 +https://gist.github.com/ogero/c19458cf64bd3e91faae85c3ac887490 See original discussion here: https://github.com/hybridgroup/gocv/issues/235 diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index fc7476bb..00000000 --- a/appveyor.yml +++ /dev/null @@ -1,36 +0,0 @@ -version: "{build}" - -clone_folder: c:\gopath\src\gocv.io\x\gocv - -platform: - - MinGW_x64 - -environment: - GOPATH: c:\gopath - GOROOT: c:\go - GOVERSION: 1.22 - TEST_EXTERNAL: 1 - APPVEYOR_SAVE_CACHE_ON_ERROR: true - -cache: - - C:\opencv -> appveyor_build_opencv.cmd - -install: - - if not exist "C:\opencv" appveyor_build_opencv.cmd - - set PATH=C:\Perl\site\bin;C:\Perl\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\7-Zip;C:\Program Files\Microsoft\Web Platform Installer\;C:\Tools\PsTools;C:\Program Files (x86)\CMake\bin;C:\go\bin;C:\Tools\NuGet;C:\Program Files\LLVM\bin;C:\Tools\curl\bin;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\Yarn\bin;C:\Users\appveyor\AppData\Local\Yarn\bin;C:\Program Files\AppVeyor\BuildAgent\ - - set PATH=%PATH%;C:\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin - - set PATH=%PATH%;C:\Tools\GitVersion;C:\Program Files\Git LFS;C:\Program Files\Git\cmd;C:\Program Files\Git\usr\bin;C:\opencv\build\install\x64\mingw\bin; - - echo %PATH% - - echo %GOPATH% - - go version - - cd c:\gopath\src\gocv.io\x\gocv - - go get -d . - - set GOCV_CAFFE_TEST_FILES=C:\opencv\testdata - - set GOCV_TENSORFLOW_TEST_FILES=C:\opencv\testdata - - set GOCV_ONNX_TEST_FILES=C:\opencv\testdata - - set OPENCV_ENABLE_NONFREE=ON - - go env - -build_script: - - go test -tags matprofile -v . - - go test -tags matprofile -v ./contrib diff --git a/appveyor_build_opencv.cmd b/appveyor_build_opencv.cmd deleted file mode 100644 index 3bcde7d7..00000000 --- a/appveyor_build_opencv.cmd +++ /dev/null @@ -1,29 +0,0 @@ - -if not exist "C:\opencv" mkdir "C:\opencv" -if not exist "C:\opencv\build" mkdir "C:\opencv\build" -if not exist "C:\opencv\testdata" mkdir "C:\opencv\testdata" - -appveyor DownloadFile https://github.com/opencv/opencv/archive/4.9.0.zip -FileName c:\opencv\opencv-4.9.0.zip -7z x c:\opencv\opencv-4.9.0.zip -oc:\opencv -y -del c:\opencv\opencv-4.9.0.zip /q -appveyor DownloadFile https://github.com/opencv/opencv_contrib/archive/4.9.0.zip -FileName c:\opencv\opencv_contrib-4.9.0.zip -7z x c:\opencv\opencv_contrib-4.9.0.zip -oc:\opencv -y -del c:\opencv\opencv_contrib-4.9.0.zip /q -cd C:\opencv\build -set PATH=C:\Perl\site\bin;C:\Perl\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\7-Zip;C:\Program Files\Microsoft\Web Platform Installer\;C:\Tools\PsTools;C:\Program Files (x86)\CMake\bin;C:\go\bin;C:\Tools\NuGet;C:\Program Files\LLVM\bin;C:\Tools\curl\bin;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\Yarn\bin;C:\Users\appveyor\AppData\Local\Yarn\bin;C:\Program Files\AppVeyor\BuildAgent\ -set PATH=%PATH%;C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin -dir C:\opencv -cmake C:\opencv\opencv-4.9.0 -G "MinGW Makefiles" -BC:\opencv\build -DENABLE_CXX11=ON -DOPENCV_EXTRA_MODULES_PATH=C:\opencv\opencv_contrib-4.9.0\modules -DBUILD_SHARED_LIBS=ON -DWITH_IPP=OFF -DWITH_MSMF=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=ON -DBUILD_opencv_java=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_python2=OFF -DBUILD_opencv_python3=OFF -DBUILD_DOCS=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_wechat_qrcode=ON -DCPU_DISPATCH= -DBUILD_opencv_gapi=OFF -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_ENABLE_NONFREE=ON -DWITH_OPENCL_D3D11_NV=OFF -DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE=int64_t -DWITH_TBB=ON -Wno-dev -mingw32-make -j%NUMBER_OF_PROCESSORS% -mingw32-make install -appveyor DownloadFile https://raw.githubusercontent.com/opencv/opencv_extra/master/testdata/dnn/bvlc_googlenet.prototxt -FileName C:\opencv\testdata\bvlc_googlenet.prototxt -appveyor DownloadFile https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/wechat_qrcode/detect.caffemodel -FileName C:\opencv\testdata\detect.caffemodel -appveyor DownloadFile https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/wechat_qrcode/detect.prototxt -FileName C:\opencv\testdata\detect.prototxt -appveyor DownloadFile https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/wechat_qrcode/sr.caffemodel -FileName C:\opencv\testdata\sr.caffemodel -appveyor DownloadFile https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/wechat_qrcode/sr.prototxt -FileName C:\opencv\testdata\sr.prototxt -appveyor DownloadFile http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel -FileName C:\opencv\testdata\bvlc_googlenet.caffemodel -appveyor DownloadFile https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip -FileName C:\opencv\testdata\inception5h.zip -appveyor DownloadFile https://github.com/onnx/models/raw/main/vision/classification/inception_and_googlenet/googlenet/model/googlenet-9.onnx -FileName C:\opencv\testdata\googlenet-9.onnx -7z x C:\opencv\testdata\inception5h.zip -oC:\opencv\testdata tensorflow_inception_graph.pb -y -rmdir c:\opencv\opencv-4.9.0 /s /q -rmdir c:\opencv\opencv_contrib-4.9.0 /s /q diff --git a/aruco_test.go b/aruco_test.go index f92c315b..afbdabc6 100644 --- a/aruco_test.go +++ b/aruco_test.go @@ -179,7 +179,7 @@ func TestDetectMarkers(t *testing.T) { defer detector.Close() _, markerIds, _ := detector.DetectMarkers(img) - expected := []int{40, 98, 62, 23, 124, 203} + expected := []int{203, 124, 23, 40, 98, 62} if !reflect.DeepEqual(markerIds, expected) { t.Error(fmt.Sprintf("Marker id expected %v got %v", expected, markerIds)) } diff --git a/cgo.go b/cgo.go index 0cbb1220..a3fda9e5 100644 --- a/cgo.go +++ b/cgo.go @@ -9,6 +9,6 @@ package gocv #cgo !windows pkg-config: opencv4 #cgo CXXFLAGS: --std=c++11 #cgo windows CPPFLAGS: -IC:/opencv/build/install/include -#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/lib -lopencv_core481 -lopencv_face481 -lopencv_videoio481 -lopencv_imgproc481 -lopencv_highgui481 -lopencv_imgcodecs481 -lopencv_objdetect481 -lopencv_features2d481 -lopencv_video481 -lopencv_dnn481 -lopencv_xfeatures2d481 -lopencv_plot481 -lopencv_tracking481 -lopencv_img_hash481 -lopencv_calib3d481 -lopencv_bgsegm481 -lopencv_photo481 -lopencv_aruco481 -lopencv_wechat_qrcode481 -lopencv_ximgproc481 +#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/lib -lopencv_core490 -lopencv_face490 -lopencv_videoio490 -lopencv_imgproc490 -lopencv_highgui490 -lopencv_imgcodecs490 -lopencv_objdetect490 -lopencv_features2d490 -lopencv_video490 -lopencv_dnn490 -lopencv_xfeatures2d490 -lopencv_plot490 -lopencv_tracking490 -lopencv_img_hash490 -lopencv_calib3d490 -lopencv_bgsegm490 -lopencv_photo490 -lopencv_aruco490 -lopencv_wechat_qrcode490 -lopencv_ximgproc490 */ import "C" diff --git a/cgo_static.go b/cgo_static.go index 3e5321b7..4fb33b69 100644 --- a/cgo_static.go +++ b/cgo_static.go @@ -10,6 +10,6 @@ package gocv #cgo !windows CPPFLAGS: -I/usr/local/include -I/usr/local/include/opencv4 #cgo !windows LDFLAGS: -L/usr/local/lib -L/usr/local/lib/opencv4/3rdparty -lopencv_gapi -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_quality -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_highgui -lopencv_dnn -lopencv_plot -lopencv_videostab -lopencv_video -lopencv_videoio -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_wechat_qrcode -lopencv_photo -lopencv_imgproc -lopencv_core -littnotify -llibprotobuf -lIlmImf -lquirc -lippiw -lippicv -lade -lz -ljpeg -ldl -lm -lpthread -lrt -lquadmath #cgo windows CPPFLAGS: -IC:/opencv/build/install/include -#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/staticlib -lopencv_stereo481 -lopencv_tracking481 -lopencv_superres481 -lopencv_stitching481 -lopencv_optflow481 -lopencv_gapi481 -lopencv_face481 -lopencv_dpm481 -lopencv_dnn_objdetect481 -lopencv_ccalib481 -lopencv_bioinspired481 -lopencv_bgsegm481 -lopencv_aruco481 -lopencv_xobjdetect481 -lopencv_ximgproc481 -lopencv_xfeatures2d481 -lopencv_videostab481 -lopencv_video481 -lopencv_structured_light481 -lopencv_shape481 -lopencv_rgbd481 -lopencv_rapid481 -lopencv_objdetect481 -lopencv_mcc481 -lopencv_highgui481 -lopencv_datasets481 -lopencv_calib3d481 -lopencv_videoio481 -lopencv_text481 -lopencv_line_descriptor481 -lopencv_imgcodecs481 -lopencv_img_hash481 -lopencv_hfs481 -lopencv_fuzzy481 -lopencv_features2d481 -lopencv_dnn_superres481 -lopencv_dnn481 -lopencv_xphoto481 -lopencv_wechat_qrcode481 -lopencv_surface_matching481 -lopencv_reg481 -lopencv_quality481 -lopencv_plot481 -lopencv_photo481 -lopencv_phase_unwrapping481 -lopencv_ml481 -lopencv_intensity_transform481 -lopencv_imgproc481 -lopencv_flann481 -lopencv_core481 -lade -lquirc -llibprotobuf -lIlmImf -llibpng -llibopenjp2 -llibwebp -llibtiff -llibjpeg-turbo -lzlib -lkernel32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -luser32 +#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/staticlib -lopencv_stereo490 -lopencv_tracking490 -lopencv_superres490 -lopencv_stitching490 -lopencv_optflow490 -lopencv_gapi490 -lopencv_face490 -lopencv_dpm490 -lopencv_dnn_objdetect490 -lopencv_ccalib490 -lopencv_bioinspired490 -lopencv_bgsegm490 -lopencv_aruco490 -lopencv_xobjdetect490 -lopencv_ximgproc490 -lopencv_xfeatures2d490 -lopencv_videostab490 -lopencv_video490 -lopencv_structured_light490 -lopencv_shape490 -lopencv_rgbd490 -lopencv_rapid490 -lopencv_objdetect490 -lopencv_mcc490 -lopencv_highgui490 -lopencv_datasets490 -lopencv_calib3d490 -lopencv_videoio490 -lopencv_text490 -lopencv_line_descriptor490 -lopencv_imgcodecs490 -lopencv_img_hash490 -lopencv_hfs490 -lopencv_fuzzy490 -lopencv_features2d490 -lopencv_dnn_superres490 -lopencv_dnn490 -lopencv_xphoto490 -lopencv_wechat_qrcode490 -lopencv_surface_matching490 -lopencv_reg490 -lopencv_quality490 -lopencv_plot490 -lopencv_photo490 -lopencv_phase_unwrapping490 -lopencv_ml490 -lopencv_intensity_transform490 -lopencv_imgproc490 -lopencv_flann490 -lopencv_core490 -lade -lquirc -llibprotobuf -lIlmImf -llibpng -llibopenjp2 -llibwebp -llibtiff -llibjpeg-turbo -lzlib -lkernel32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -luser32 */ import "C" diff --git a/contrib/cgo.go b/contrib/cgo.go index 451b9a7d..ca6cfdca 100644 --- a/contrib/cgo.go +++ b/contrib/cgo.go @@ -9,6 +9,6 @@ package contrib #cgo !windows pkg-config: opencv4 #cgo CXXFLAGS: --std=c++11 #cgo windows CPPFLAGS: -IC:/opencv/build/install/include -#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/lib -lopencv_core481 -lopencv_face481 -lopencv_videoio481 -lopencv_imgproc481 -lopencv_highgui481 -lopencv_imgcodecs481 -lopencv_objdetect481 -lopencv_features2d481 -lopencv_video481 -lopencv_dnn481 -lopencv_xfeatures2d481 -lopencv_plot481 -lopencv_tracking481 -lopencv_img_hash481 -lopencv_calib3d481 -lopencv_bgsegm481 -lopencv_xphoto481 -lopencv_aruco481 -lopencv_wechat_qrcode481 -lopencv_ximgproc481 +#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/lib -lopencv_core490 -lopencv_face490 -lopencv_videoio490 -lopencv_imgproc490 -lopencv_highgui490 -lopencv_imgcodecs490 -lopencv_objdetect490 -lopencv_features2d490 -lopencv_video490 -lopencv_dnn490 -lopencv_xfeatures2d490 -lopencv_plot490 -lopencv_tracking490 -lopencv_img_hash490 -lopencv_calib3d490 -lopencv_bgsegm490 -lopencv_xphoto490 -lopencv_aruco490 -lopencv_wechat_qrcode490 -lopencv_ximgproc490 */ import "C" diff --git a/contrib/cgo_static.go b/contrib/cgo_static.go index cb4f55ad..26e8f03c 100644 --- a/contrib/cgo_static.go +++ b/contrib/cgo_static.go @@ -10,6 +10,6 @@ package contrib #cgo !windows CPPFLAGS: -I/usr/local/include -I/usr/local/include/opencv4 #cgo !windows LDFLAGS: -L/usr/local/lib -L/usr/local/lib/opencv4/3rdparty -lopencv_gapi -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_quality -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_highgui -lopencv_dnn -lopencv_plot -lopencv_videostab -lopencv_video -lopencv_videoio -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_wechat_qrcode -lopencv_photo -lopencv_imgproc -lopencv_core -littnotify -llibprotobuf -lIlmImf -lquirc -lippiw -lippicv -lade -lz -ljpeg -ldl -lm -lpthread -lrt -lquadmath #cgo windows CPPFLAGS: -IC:/opencv/build/install/include -#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/staticlib -lopencv_stereo481 -lopencv_tracking481 -lopencv_superres481 -lopencv_stitching481 -lopencv_optflow481 -lopencv_gapi481 -lopencv_face481 -lopencv_dpm481 -lopencv_dnn_objdetect481 -lopencv_ccalib481 -lopencv_bioinspired481 -lopencv_bgsegm481 -lopencv_aruco481 -lopencv_xobjdetect481 -lopencv_ximgproc481 -lopencv_xfeatures2d481 -lopencv_videostab481 -lopencv_video481 -lopencv_structured_light481 -lopencv_shape481 -lopencv_rgbd481 -lopencv_rapid481 -lopencv_objdetect481 -lopencv_mcc481 -lopencv_highgui481 -lopencv_datasets481 -lopencv_calib3d481 -lopencv_videoio481 -lopencv_text481 -lopencv_line_descriptor481 -lopencv_imgcodecs481 -lopencv_img_hash481 -lopencv_hfs481 -lopencv_fuzzy481 -lopencv_features2d481 -lopencv_dnn_superres481 -lopencv_dnn481 -lopencv_xphoto481 -lopencv_wechat_qrcode481 -lopencv_surface_matching481 -lopencv_reg481 -lopencv_quality481 -lopencv_plot481 -lopencv_photo481 -lopencv_phase_unwrapping481 -lopencv_ml481 -lopencv_intensity_transform481 -lopencv_imgproc481 -lopencv_flann481 -lopencv_core481 -lade -lquirc -llibprotobuf -lIlmImf -llibpng -llibopenjp2 -llibwebp -llibtiff -llibjpeg-turbo -lzlib -lkernel32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -luser32 +#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/staticlib -lopencv_stereo490 -lopencv_tracking490 -lopencv_superres490 -lopencv_stitching490 -lopencv_optflow490 -lopencv_gapi490 -lopencv_face490 -lopencv_dpm490 -lopencv_dnn_objdetect490 -lopencv_ccalib490 -lopencv_bioinspired490 -lopencv_bgsegm490 -lopencv_aruco490 -lopencv_xobjdetect490 -lopencv_ximgproc490 -lopencv_xfeatures2d490 -lopencv_videostab490 -lopencv_video490 -lopencv_structured_light490 -lopencv_shape490 -lopencv_rgbd490 -lopencv_rapid490 -lopencv_objdetect490 -lopencv_mcc490 -lopencv_highgui490 -lopencv_datasets490 -lopencv_calib3d490 -lopencv_videoio490 -lopencv_text490 -lopencv_line_descriptor490 -lopencv_imgcodecs490 -lopencv_img_hash490 -lopencv_hfs490 -lopencv_fuzzy490 -lopencv_features2d490 -lopencv_dnn_superres490 -lopencv_dnn490 -lopencv_xphoto490 -lopencv_wechat_qrcode490 -lopencv_surface_matching490 -lopencv_reg490 -lopencv_quality490 -lopencv_plot490 -lopencv_photo490 -lopencv_phase_unwrapping490 -lopencv_ml490 -lopencv_intensity_transform490 -lopencv_imgproc490 -lopencv_flann490 -lopencv_core490 -lade -lquirc -llibprotobuf -lIlmImf -llibpng -llibopenjp2 -llibwebp -llibtiff -llibjpeg-turbo -lzlib -lkernel32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -luser32 */ import "C" diff --git a/cuda/cgo.go b/cuda/cgo.go index 3169aab2..3e3e77bf 100644 --- a/cuda/cgo.go +++ b/cuda/cgo.go @@ -9,6 +9,6 @@ package cuda #cgo !windows pkg-config: opencv4 #cgo CXXFLAGS: --std=c++11 #cgo windows CPPFLAGS: -IC:/opencv/build/install/include -#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/lib -lopencv_core481 -lopencv_face481 -lopencv_videoio481 -lopencv_imgproc481 -lopencv_highgui481 -lopencv_imgcodecs481 -lopencv_objdetect481 -lopencv_features2d481 -lopencv_video481 -lopencv_dnn481 -lopencv_xfeatures2d481 -lopencv_plot481 -lopencv_tracking481 -lopencv_img_hash481 -lopencv_calib3d481 -lopencv_bgsegm481 -lopencv_aruco481 -lopencv_wechat_qrcode481 -lopencv_ximgproc481 +#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/lib -lopencv_core490 -lopencv_face490 -lopencv_videoio490 -lopencv_imgproc490 -lopencv_highgui490 -lopencv_imgcodecs490 -lopencv_objdetect490 -lopencv_features2d490 -lopencv_video490 -lopencv_dnn490 -lopencv_xfeatures2d490 -lopencv_plot490 -lopencv_tracking490 -lopencv_img_hash490 -lopencv_calib3d490 -lopencv_bgsegm490 -lopencv_aruco490 -lopencv_wechat_qrcode490 -lopencv_ximgproc490 */ import "C" diff --git a/cuda/cgo_static.go b/cuda/cgo_static.go index 3e5321b7..4fb33b69 100644 --- a/cuda/cgo_static.go +++ b/cuda/cgo_static.go @@ -10,6 +10,6 @@ package gocv #cgo !windows CPPFLAGS: -I/usr/local/include -I/usr/local/include/opencv4 #cgo !windows LDFLAGS: -L/usr/local/lib -L/usr/local/lib/opencv4/3rdparty -lopencv_gapi -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_quality -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_highgui -lopencv_dnn -lopencv_plot -lopencv_videostab -lopencv_video -lopencv_videoio -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_wechat_qrcode -lopencv_photo -lopencv_imgproc -lopencv_core -littnotify -llibprotobuf -lIlmImf -lquirc -lippiw -lippicv -lade -lz -ljpeg -ldl -lm -lpthread -lrt -lquadmath #cgo windows CPPFLAGS: -IC:/opencv/build/install/include -#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/staticlib -lopencv_stereo481 -lopencv_tracking481 -lopencv_superres481 -lopencv_stitching481 -lopencv_optflow481 -lopencv_gapi481 -lopencv_face481 -lopencv_dpm481 -lopencv_dnn_objdetect481 -lopencv_ccalib481 -lopencv_bioinspired481 -lopencv_bgsegm481 -lopencv_aruco481 -lopencv_xobjdetect481 -lopencv_ximgproc481 -lopencv_xfeatures2d481 -lopencv_videostab481 -lopencv_video481 -lopencv_structured_light481 -lopencv_shape481 -lopencv_rgbd481 -lopencv_rapid481 -lopencv_objdetect481 -lopencv_mcc481 -lopencv_highgui481 -lopencv_datasets481 -lopencv_calib3d481 -lopencv_videoio481 -lopencv_text481 -lopencv_line_descriptor481 -lopencv_imgcodecs481 -lopencv_img_hash481 -lopencv_hfs481 -lopencv_fuzzy481 -lopencv_features2d481 -lopencv_dnn_superres481 -lopencv_dnn481 -lopencv_xphoto481 -lopencv_wechat_qrcode481 -lopencv_surface_matching481 -lopencv_reg481 -lopencv_quality481 -lopencv_plot481 -lopencv_photo481 -lopencv_phase_unwrapping481 -lopencv_ml481 -lopencv_intensity_transform481 -lopencv_imgproc481 -lopencv_flann481 -lopencv_core481 -lade -lquirc -llibprotobuf -lIlmImf -llibpng -llibopenjp2 -llibwebp -llibtiff -llibjpeg-turbo -lzlib -lkernel32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -luser32 +#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/staticlib -lopencv_stereo490 -lopencv_tracking490 -lopencv_superres490 -lopencv_stitching490 -lopencv_optflow490 -lopencv_gapi490 -lopencv_face490 -lopencv_dpm490 -lopencv_dnn_objdetect490 -lopencv_ccalib490 -lopencv_bioinspired490 -lopencv_bgsegm490 -lopencv_aruco490 -lopencv_xobjdetect490 -lopencv_ximgproc490 -lopencv_xfeatures2d490 -lopencv_videostab490 -lopencv_video490 -lopencv_structured_light490 -lopencv_shape490 -lopencv_rgbd490 -lopencv_rapid490 -lopencv_objdetect490 -lopencv_mcc490 -lopencv_highgui490 -lopencv_datasets490 -lopencv_calib3d490 -lopencv_videoio490 -lopencv_text490 -lopencv_line_descriptor490 -lopencv_imgcodecs490 -lopencv_img_hash490 -lopencv_hfs490 -lopencv_fuzzy490 -lopencv_features2d490 -lopencv_dnn_superres490 -lopencv_dnn490 -lopencv_xphoto490 -lopencv_wechat_qrcode490 -lopencv_surface_matching490 -lopencv_reg490 -lopencv_quality490 -lopencv_plot490 -lopencv_photo490 -lopencv_phase_unwrapping490 -lopencv_ml490 -lopencv_intensity_transform490 -lopencv_imgproc490 -lopencv_flann490 -lopencv_core490 -lade -lquirc -llibprotobuf -lIlmImf -llibpng -llibopenjp2 -llibwebp -llibtiff -llibjpeg-turbo -lzlib -lkernel32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -luser32 */ import "C" diff --git a/version_test.go b/version_test.go index d8cf7036..11cadd79 100644 --- a/version_test.go +++ b/version_test.go @@ -8,7 +8,7 @@ import ( func TestVersions(t *testing.T) { ocvv := OpenCVVersion() - if !strings.Contains(ocvv, "4.8") { + if !strings.Contains(ocvv, "4.9") { t.Error("Wrong version of OpenCV:", ocvv) }