Skip to content

Commit

Permalink
all: update to use OpenCV 4.8.0
Browse files Browse the repository at this point in the history
Signed-off-by: deadprogram <[email protected]>
  • Loading branch information
deadprogram committed Jul 27, 2023
1 parent 3e54d58 commit 2839221
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 44 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
jobs:
build:
runs-on: ubuntu-latest
container: ghcr.io/hybridgroup/opencv:4.7.0
container: ghcr.io/hybridgroup/opencv:4.8.0

steps:
- name: Checkout
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
GOCV_VERSION?="v0.31.0"

# OpenCV version to use.
OPENCV_VERSION?=4.7.0
OPENCV_VERSION?=4.8.0

# Go version to use when building Docker image
GOVERSION?=1.16.2
Expand Down
42 changes: 21 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

The GoCV package provides Go language bindings for the [OpenCV 4](http://opencv.org/) computer vision library.

The GoCV package supports the latest releases of Go and OpenCV (v4.7.0) on Linux, macOS, and Windows. We intend to make the Go language a "first-class" client compatible with the latest developments in the OpenCV ecosystem.
The GoCV package supports the latest releases of Go and OpenCV (v4.8.0) on Linux, macOS, and Windows. We intend to make the Go language a "first-class" client compatible with the latest developments in the OpenCV ecosystem.

GoCV supports [CUDA](https://en.wikipedia.org/wiki/CUDA) for hardware acceleration using Nvidia GPUs. Check out the [CUDA README](./cuda/README.md) for more info on how to use GoCV with OpenCV/CUDA.

Expand Down Expand Up @@ -122,15 +122,15 @@ There are examples in the [cmd directory](./cmd) of this repo in the form of var

## How to install

To install GoCV, you must first have the matching version of OpenCV installed on your system. The current release of GoCV requires OpenCV 4.7.0.
To install GoCV, you must first have the matching version of OpenCV installed on your system. The current release of GoCV requires OpenCV 4.8.0.

Here are instructions for Ubuntu, Raspian, macOS, and Windows.

## Ubuntu/Linux

### Installation

You can use `make` to install OpenCV 4.7.0 with the handy `Makefile` included with this repo. If you already have installed OpenCV, you do not need to do so again. The installation performed by the `Makefile` is minimal, so it may remove OpenCV options such as Python or Java wrappers if you have already installed OpenCV some other way.
You can use `make` to install OpenCV 4.8.0 with the handy `Makefile` included with this repo. If you already have installed OpenCV, you do not need to do so again. The installation performed by the `Makefile` is minimal, so it may remove OpenCV options such as Python or Java wrappers if you have already installed OpenCV some other way.

#### Quick Install

Expand All @@ -141,7 +141,7 @@ First, change directories to where you want to install GoCV, and then use git to

Make sure to change `$HOME/folder/with/your/src/` to where you actually want to save the code.

Once you have cloned the repo, the following commands should do everything to download and install OpenCV 4.7.0 on Linux:
Once you have cloned the repo, the following commands should do everything to download and install OpenCV 4.8.0 on Linux:

cd gocv
make install
Expand All @@ -153,7 +153,7 @@ If you need static opencv libraries
If it works correctly, at the end of the entire process, the following message should be displayed:

gocv version: 0.33.0
opencv lib version: 4.7.0
opencv lib version: 4.8.0

That's it, now you are ready to use GoCV.

Expand All @@ -167,7 +167,7 @@ See the [openvino directory](./openvino) for information.

#### Make Install for OpenVINO and Cuda

The following commands should do everything to download and install OpenCV 4.7.0 with CUDA and OpenVINO on Linux. Make sure to change `$HOME/folder/with/your/src/` to the directory you used to clone GoCV:
The following commands should do everything to download and install OpenCV 4.8.0 with CUDA and OpenVINO on Linux. Make sure to change `$HOME/folder/with/your/src/` to the directory you used to clone GoCV:

cd $HOME/folder/with/gocv/
make install_all
Expand All @@ -179,7 +179,7 @@ If you need static opencv libraries
If it works correctly, at the end of the entire process, the following message should be displayed:

gocv version: 0.33.0
opencv lib version: 4.7.0-openvino
opencv lib version: 4.8.0-openvino
cuda information:
Device 0: "GeForce MX150" 2003Mb, sm_61, Driver/Runtime ver.10.0/10.0

Expand All @@ -206,7 +206,7 @@ Next, you need to update the system, and install any required packages:

#### Download source

Now, download the OpenCV 4.7.0 and OpenCV Contrib source code:
Now, download the OpenCV 4.8.0 and OpenCV Contrib source code:

make download

Expand Down Expand Up @@ -241,7 +241,7 @@ Now you should be able to build or run any of the examples:
The version program should output the following:

gocv version: 0.33.0
opencv lib version: 4.7.0
opencv lib version: 4.8.0

#### Cleanup extra files

Expand Down Expand Up @@ -320,7 +320,7 @@ There is a Docker image with Alpine 3.7 that has been created by project contrib

### Installation

We have a special installation for the Raspberry Pi that includes some hardware optimizations. You use `make` to install OpenCV 4.7.0 with the handy `Makefile` included with this repo. If you already have installed OpenCV, you do not need to do so again. The installation performed by the `Makefile` is minimal, so it may remove OpenCV options such as Python or Java wrappers if you have already installed OpenCV some other way.
We have a special installation for the Raspberry Pi that includes some hardware optimizations. You use `make` to install OpenCV 4.8.0 with the handy `Makefile` included with this repo. If you already have installed OpenCV, you do not need to do so again. The installation performed by the `Makefile` is minimal, so it may remove OpenCV options such as Python or Java wrappers if you have already installed OpenCV some other way.

#### Quick Install

Expand All @@ -331,29 +331,29 @@ First, change directories to where you want to install GoCV, and then use git to

Make sure to change `$HOME/folder/with/your/src/` to where you actually want to save the code.

The following make command should do everything to download and install OpenCV 4.7.0 on Raspbian:
The following make command should do everything to download and install OpenCV 4.8.0 on Raspbian:

cd $HOME/folder/with/your/src/gocv
make install_raspi

If it works correctly, at the end of the entire process, the following message should be displayed:

gocv version: 0.33.0
opencv lib version: 4.7.0
opencv lib version: 4.8.0

That's it, now you are ready to use GoCV.

## macOS

### Installation

You can install OpenCV 4.7.0 using Homebrew.
You can install OpenCV 4.8.0 using Homebrew.

If you already have an earlier version of OpenCV (3.4.x) installed, you should probably remove it before installing the new version:

brew uninstall opencv

You can then install OpenCV 4.7.0:
You can then install OpenCV 4.8.0:

brew install opencv

Expand All @@ -378,7 +378,7 @@ Now you should be able to build or run any of the examples:
The version program should output the following:

gocv version: 0.33.0
opencv lib version: 4.7.0
opencv lib version: 4.8.0

### Custom Environment

Expand All @@ -387,8 +387,8 @@ By default, pkg-config is used to determine the correct flags for compiling and
For example:

export CGO_CXXFLAGS="--std=c++11"
export CGO_CPPFLAGS="-I/usr/local/Cellar/opencv/4.7.0/include"
export CGO_LDFLAGS="-L/usr/local/Cellar/opencv/4.7.0/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core"
export CGO_CPPFLAGS="-I/usr/local/Cellar/opencv/4.8.0/include"
export CGO_LDFLAGS="-L/usr/local/Cellar/opencv/4.8.0/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core"

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:

Expand All @@ -400,7 +400,7 @@ Please note that you will need to run these 3 lines of code one time in your cur

The following assumes that you are running a 64-bit version of Windows 10.

In order to build and install OpenCV 4.7.0 on Windows, you must first download and install MinGW-W64 and CMake, as follows.
In order to build and install OpenCV 4.8.0 on Windows, you must first download and install MinGW-W64 and CMake, as follows.

#### MinGW-W64

Expand All @@ -416,9 +416,9 @@ Add the `C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bi

Download and install CMake [https://cmake.org/download/](https://cmake.org/download/) to the default location. CMake installer will add CMake to your system path.

#### OpenCV 4.7.0 and OpenCV Contrib Modules
#### OpenCV 4.8.0 and OpenCV Contrib Modules

The following commands should do everything to download and install OpenCV 4.7.0 on Windows:
The following commands should do everything to download and install OpenCV 4.8.0 on Windows:

chdir %GOPATH%\src\gocv.io\x\gocv
win_build_opencv.cmd
Expand All @@ -440,7 +440,7 @@ Now you should be able to build or run any of the command examples:
The version program should output the following:

gocv version: 0.33.0
opencv lib version: 4.7.0
opencv lib version: 4.8.0

That's it, now you are ready to use GoCV.

Expand Down
18 changes: 9 additions & 9 deletions appveyor_build_opencv.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@ 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.7.0.zip -FileName c:\opencv\opencv-4.7.0.zip
7z x c:\opencv\opencv-4.7.0.zip -oc:\opencv -y
del c:\opencv\opencv-4.7.0.zip /q
appveyor DownloadFile https://github.com/opencv/opencv_contrib/archive/4.7.0.zip -FileName c:\opencv\opencv_contrib-4.7.0.zip
7z x c:\opencv\opencv_contrib-4.7.0.zip -oc:\opencv -y
del c:\opencv\opencv_contrib-4.7.0.zip /q
appveyor DownloadFile https://github.com/opencv/opencv/archive/4.8.0.zip -FileName c:\opencv\opencv-4.8.0.zip
7z x c:\opencv\opencv-4.8.0.zip -oc:\opencv -y
del c:\opencv\opencv-4.8.0.zip /q
appveyor DownloadFile https://github.com/opencv/opencv_contrib/archive/4.8.0.zip -FileName c:\opencv\opencv_contrib-4.8.0.zip
7z x c:\opencv\opencv_contrib-4.8.0.zip -oc:\opencv -y
del c:\opencv\opencv_contrib-4.8.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.7.0 -G "MinGW Makefiles" -BC:\opencv\build -DENABLE_CXX11=ON -DOPENCV_EXTRA_MODULES_PATH=C:\opencv\opencv_contrib-4.7.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
cmake C:\opencv\opencv-4.8.0 -G "MinGW Makefiles" -BC:\opencv\build -DENABLE_CXX11=ON -DOPENCV_EXTRA_MODULES_PATH=C:\opencv\opencv_contrib-4.8.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
Expand All @@ -25,5 +25,5 @@ appveyor DownloadFile http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemod
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.7.0 /s /q
rmdir c:\opencv\opencv_contrib-4.7.0 /s /q
rmdir c:\opencv\opencv-4.8.0 /s /q
rmdir c:\opencv\opencv_contrib-4.8.0 /s /q
2 changes: 1 addition & 1 deletion version_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
func TestVersions(t *testing.T) {
ocvv := OpenCVVersion()

if !strings.Contains(ocvv, "4.7") {
if !strings.Contains(ocvv, "4.8") {
t.Error("Wrong version of OpenCV:", ocvv)
}

Expand Down
22 changes: 11 additions & 11 deletions win_build_opencv.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,18 @@ echo.
REM This is why there is no progress bar:
REM https://github.com/PowerShell/PowerShell/issues/2138

echo Downloading: opencv-4.7.0.zip [91MB]
powershell -command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/4.7.0.zip -OutFile c:\opencv\opencv-4.7.0.zip"
echo Downloading: opencv-4.8.0.zip [91MB]
powershell -command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/4.8.0.zip -OutFile c:\opencv\opencv-4.8.0.zip"
echo Extracting...
powershell -command "$ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path c:\opencv\opencv-4.7.0.zip -DestinationPath c:\opencv"
del c:\opencv\opencv-4.7.0.zip /q
powershell -command "$ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path c:\opencv\opencv-4.8.0.zip -DestinationPath c:\opencv"
del c:\opencv\opencv-4.8.0.zip /q
echo.

echo Downloading: opencv_contrib-4.7.0.zip [58MB]
powershell -command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://github.com/opencv/opencv_contrib/archive/4.7.0.zip -OutFile c:\opencv\opencv_contrib-4.7.0.zip"
echo Downloading: opencv_contrib-4.8.0.zip [58MB]
powershell -command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://github.com/opencv/opencv_contrib/archive/4.8.0.zip -OutFile c:\opencv\opencv_contrib-4.8.0.zip"
echo Extracting...
powershell -command "$ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path c:\opencv\opencv_contrib-4.7.0.zip -DestinationPath c:\opencv"
del c:\opencv\opencv_contrib-4.7.0.zip /q
powershell -command "$ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path c:\opencv\opencv_contrib-4.8.0.zip -DestinationPath c:\opencv"
del c:\opencv\opencv_contrib-4.8.0.zip /q
echo.

echo Done with downloading and extracting sources.
Expand All @@ -38,9 +38,9 @@ if [%1]==[static] (
) else (
set enable_shared=ON
)
cmake C:\opencv\opencv-4.7.0 -G "MinGW Makefiles" -BC:\opencv\build -DENABLE_CXX11=ON -DOPENCV_EXTRA_MODULES_PATH=C:\opencv\opencv_contrib-4.7.0\modules -DBUILD_SHARED_LIBS=%enable_shared% -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
cmake C:\opencv\opencv-4.8.0 -G "MinGW Makefiles" -BC:\opencv\build -DENABLE_CXX11=ON -DOPENCV_EXTRA_MODULES_PATH=C:\opencv\opencv_contrib-4.8.0\modules -DBUILD_SHARED_LIBS=%enable_shared% -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
mingw32-make -j%NUMBER_OF_PROCESSORS%
mingw32-make install
rmdir c:\opencv\opencv-4.7.0 /s /q
rmdir c:\opencv\opencv_contrib-4.7.0 /s /q
rmdir c:\opencv\opencv-4.8.0 /s /q
rmdir c:\opencv\opencv_contrib-4.8.0 /s /q
chdir /D %GOPATH%\src\gocv.io\x\gocv

0 comments on commit 2839221

Please sign in to comment.