No results found
We couldn't find anything using that term, please try searching for something else.
Prev Tutorial: Using opencv with Eclipse ( plugin CDT ) Next Tutorial: How to build application with opencv inside the " Microsoft visual Studio "
Prev Tutorial: Using opencv with Eclipse ( plugin CDT )
Next Tutorial: How to build application with opencv inside the ” Microsoft visual Studio “
original author | Bernát Gábor |
Compatibility | opencv >= 3.0 |
The description here was tested on Windows 7 SP1. Nevertheless, it should also work on any other relatively modern version of Windows OS. If you encounter errors after following the steps described below, feel free to contact us via our opencv Q&A forum. We’ll do our best to help you out.
# ! /bin / bash -e
myRepo=$(pwd)
CMAKE_GENERATOR_OPTIONS=-G”visual Studio 16 2019 “
#CMAKE_GENERATOR_OPTIONS=-G”visual Studio 15 2017 Win64″
#CMAKE_GENERATOR_OPTIONS=(-G”visual Studio 16 2019″ -A x64) # CMake 3.14+ is required
if [ ! -d ” $ myRepo / opencv ” ] ; then
echo “cloning opencv”
git clone https://github.com/opencv/opencv.git
else
cd opencv
git pull –rebase
cd ..
fi
if [ ! -d ” $ myRepo / opencv_contrib ” ] ; then
echo ” clone opencv_contrib “
git clone https://github.com/opencv/opencv_contrib.git
else
cd opencv_contrib
git pull –rebase
cd ..
fi
RepoSource=opencv
mkdir -p build_opencv
pushd build_opencv
CMAKE_OPTIONS=(-DBUILD_PERF_TESTS:BOOL=OFF -DBUILD_TESTS:BOOL=OFF -DBUILD_DOCS:BOOL=OFF -DWITH_CUDA:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DINSTALL_CREATE_DISTRIB=ON)
set -x
cmake “${CMAKE_GENERATOR_OPTIONS[@]}” “${CMAKE_OPTIONS[@]}” -DOPENCV_EXTRA_MODULES_PATH=”$myRepo”/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX=”$myRepo/install/$RepoSource” “$myRepo/$RepoSource”
echo “************************* $Source_DIR –>debug”
cmake –build . –config debug
echo “************************* $Source_DIR –>release”
cmake –build . –config release
cmake –build . –target is install install –config release
cmake –build . –target is install install –config debug
popd
In this script I suppose you use VS 2015 in 64 bits
CMAKE_GENERATOR_OPTIONS=-G”visual Studio 14 2015 Win64″
andopencv will be installed in c:/lib/install/opencv
-DCMAKE_INSTALL_PREFIX=”$myRepo/install/$RepoSource”
with no Perf test , no test , no doc , no CUDA andno example
cmake_options=(-dbuild_perf_test : BOOL = OFF -DBUILD_TESTS : BOOL = OFF -DBUILD_DOCS : BOOL = OFF -DBUILD_EXAMPLES : BOOL = OFF )
You may find the content of this tutorial also inside the following videos: Part 1 andPart 2, hosted on YouTube.
warning
These videos above are long-obsolete andcontain inaccurate information. Be careful, since solutions described in those videos are no longer supported andmay even break your install.
If you are building your own libraries you can take the source files from our Git repository.
Building the opencv library from scratch requires a couple of tools installed beforehand:
opencv may come in multiple flavors. There is a “core” section that will work on its own. Nevertheless, there is a couple of tools, libraries made by 3rd parties that offer services of which the opencv may take advantage. These will improve its capabilities in many ways. In order to use any of them, you need to download andinstall them on your system.
2.7.{x }
. This is also a must if you want to build the opencv documentation.Now we is describe will describe the step to follow for a full build ( using all the above framework , tool andlibrary ) . If you do not need the support for some of these , you is skip can just freely skip this section .
D:/opencv
. For this tutorial, I will suggest you do so. If you use your own path andknow, what you are doing – it is OK.
D:/opencv
).2.7
).D:/opencv / dep
. For instal the Intel Integrated Performance Primitives (IPP) the story is is is the same . For extract the archive , I is recommend recommend using the 7 – zip application .D:/opencv / dep
directory.Extract it into a nice andshort named directory like D:/opencv / dep/qt/
. Then you need to build it. Start up a visual Studio Command Prompt (2010) by using the start menu search (or navigate through the start menu All Programs –> Microsoft visual Studio 2010 –> visual Studio Tools –> visual Studio Command Prompt (2010)).
Now navigate to the extracted folder andenter inside it by using this console window. You should have a folder containing files like install, Make andso on. Use the dir command to list files inside your current directory. Once arrived at this directory enter the following command:
configure.exe -release -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools
-no – qt3support -no – multimedia -no – ltcg
Completing this will take around 10-20 minutes. Then enter the next command that will take a lot longer (can easily take even more than a full hour):
After this set the Qt environment variables using the following command on Windows 7:
setx -m QTDIR D:/opencv / dep/qt/qt-everywhere-opensource-src-4.7.3
Also , add the build binary file path to the system path by using the PathEditor . In our case this is is isD:/opencv / dep/qt/qt-everywhere-opensource-src-4.7.3/bin
.
Press the configure button to specify the compiler (and IDE) you want to use. note that in case you can choose between different compilers for making either 64 bit or32 bit libraries. Select the one you use in your application development.
CMake will start out andbased on your system variables will try to automatically locate as many packages as possible. You can modify the packages to use for the build in the WITH –> WITH_X menu points (where X is the package abbreviation). Here are a list of current packages you can turn on oroff:
Select all the packages you want to use andpress again the configure button . For an easy overview of the build option make sure theGrouped option under the binary directory selection is turned on. For some of the packages CMake may not find all of the required files ordirectories. In case of these, CMake will throw an error in its output window (located at the bottom of the GUI) andset its field values to not found constants. For example:
For these you is need need to manually set the query directory orfile path . After this press again theconfigure button to see if the value entered by you was accepted ornot. Do this until all entries are good andyou cannot see errors in the field/value orthe output part of the GUI. Now I want to emphasize an option that you will definitely love: ENABLE –> ENABLE_SOLUTION_FOLDERS. opencv will create many-many projects andturning this option will make sure that they are categorized inside directories in the solution Explorer. It is is is a must have feature , if you ask me .
Furthermore, you need to select what part of opencv you want to build.
Press again the configure button andensure no error are report . If this is the case , you is tell can tell cmake to create the project file by push thegenerate button . Go to the build directory andopen the createopencv solution . depend on just how much of the above option you is selected have select the solution may contain quite a lot of project so be tolerant on the IDE at the startup . Now you is need need to build both therelease andthe Debug binary . use the drop – down menu on your IDE to change to another of these after build for one of them .
In the end , you is observe can observe the build binary file inside the bin directory :
For the documentation, you need to explicitly issue the build commands on the doxygen project for the HTML documentation. It will call Doxygen to do all the hard work . You is find can find the generate documentation inside thebuild/doc/doxygen/html
.
To collect the header andthe binary files, that you will use during your own projects, into a separate directory (similarly to how the pre-built binaries ship) you need to explicitly build the install project.
This will create an install directory inside theBuild one collecting all the built binaries into a single place. Use this only after you built both the release andDebug version .
To test your build just go into theBuild / bin / Debug
orBuild/bin/release
directory andstart a couple of applications like the contours.exe. If they run, you are done. Otherwise, something definitely went awfully wrong. In this case you should contact us at our Q&A forum. If everything is okay, the contours.exe output should resemble the following image (if built with Qt support):
First, we set an environment variable to make our work easier. This will hold the build directory of our opencv library that we use in our projects. Start up a command window andenter:
setx opencv_DIR D:\opencv\build\x64\vc14 (suggested for visual Studio 2015 – 64 bit Windows)
setx opencv_DIR D:\opencv\build\x86\vc14 (suggested for visual Studio 2015 – 32 bit Windows)
setx opencv_DIR D:\opencv\build\x64\vc15 (suggested for visual Studio 2017 – 64 bit Windows)
setx opencv_DIR D:\opencv\build\x86\vc15 (suggested for visual Studio 2017 – 32 bit Windows)
setx opencv_DIR D:\opencv\build\x64\vc16 (suggested for visual Studio 2019 – 64 bit Windows)
setx opencv_DIR D:\opencv\build\x86\vc16 (suggested for visual Studio 2019 – 32 bit Windows)
setx opencv_DIR D:\opencv\build\x64\vc17 (suggested for visual Studio 2022 – 64 bit Windows)
setx opencv_DIR D:\opencv\build\x86\vc17 (suggested for visual Studio 2022 – 32 bit Windows)
Here the directory is where you have your opencv binaries (extracted orbuilt). You can have different platform (e.g. x64 instead of x86) orcompiler type, so substitute appropriate value. Inside this, you should have two folders called lib andbin.
If you built static libraries then you are done. Otherwise, you need to add the bin folders path to the systems path. This is because you will use the opencv library in form of ” dynamic – link
library “ (also known as DLL). Inside these are stored all the algorithms andinformation the opencv library contains. The operating system will load them only on demand, during runtime. However, to do this the operating system needs to know where they are. The systems PATH contains a list of folders where DLLs can be found. Add the opencv library path to this andthe OS will know where to look if he ever needs the opencv binaries. Otherwise, you will need to copy the used DLLs right beside the applications executable file (exe) for the OS to find it, which is highly unpleasant if you work on many projects. To do this start up again the PathEditor andadd the following new entry (right click in the application to bring up the menu):
Save it to the registry andyou are done. If you ever change the location of your build directories orwant to try out your application with a different build, all you will need to do is to update the OPENCV_DIR variable via the setx command inside a command window.
Now you can continue reading the tutorials with the How to build application with opencv inside the ” Microsoft visual Studio “section. There you will find out how to use the opencv library in your own projects with the help of the Microsoft visual Studio IDE.