Cross platform wrapper of OpenCV for .NET Framework.
Old versions of OpenCvSharp are maintained in opencvsharp_2410.
Package | Description | Link |
---|---|---|
OpenCvSharp4 | OpenCvSharp core libraries | |
OpenCvSharp4.Windows | All-in-one package for Windows - same as OpenCvSharp3-AnyCPU | |
OpenCvSharp4.runtime.win | Native bindings for Windows x64/x86 | |
OpenCvSharp4.runtime.ubuntu.18.04-x64 | Native bindings for Ubuntu 18.04 x64 | |
(beta packages) | Development Build Package | https://ci.appveyor.com/nuget/opencvsharp |
Native binding (OpenCvSharpExtern.dll / libOpenCvSharpExtern.so) is required to work OpenCvSharp. To use OpenCvSharp, you should add both OpenCvSharp4
and OpenCvSharp4.runtime.*
packages to your project. Currently, native bindings for Windows and Ubuntu 18.04 are released.
Packages named OpenCvSharp3-* and OpenCvSharp-* are deprecated.
Add OpenCvSharp4
and OpenCvSharp4.runtime.win
NuGet packages to your project. You can use OpenCvSharp4.Windows
instead.
Add OpenCvSharp4
and OpenCvSharp4.runtime.ubuntu.18.04.x64
NuGet packages to your project
dotnet new console -n ConsoleApp01
cd ConsoleApp01
dotnet add package OpenCvSharp4
dotnet add package OpenCvSharp4.runtime.ubuntu.18.04-x64
# -- edit Program.cs --- #
dotnet run
If you do not use NuGet, get DLL files from the release page.
- OpenCV 4.0.0 with opencv_contrib
- (Windows)Visual C++ 2017 Redistributable Package
- .NET Framework 2.0 or later / .NET Core 2.0 / Mono
OpenCvSharp may not work on UWP and Unity platform. Please consider using OpenCV for Unity
https://shimat.github.io/opencvsharp_docs/index.html
For more details, see the Wiki page.
// Edge detection by Canny algorithm
using OpenCvSharp;
class Program
{
static void Main()
{
Mat src = new Mat("lenna.png", ImreadModes.Grayscale);
// Mat src = Cv2.ImRead("lenna.png", ImreadModes.Grayscale);
Mat dst = new Mat();
Cv2.Canny(src, dst, 50, 200);
using (new Window("src image", src))
using (new Window("dst image", dst))
{
Cv2.WaitKey();
}
}
}
- OpenCvSharp is modeled on the native OpenCV C/C++ API style as much as possible.
- Many classes of OpenCvSharp implement IDisposable. There is no need to manage unsafe resources.
- OpenCvSharp does not force object-oriented programming style on you. You can also call native-style OpenCV functions.
- OpenCvSharp provides functions for converting from Mat/IplImage into Bitmap(GDI+) or WriteableBitmap(WPF).
- OpenCvSharp can work on Mono. It can run on any platform which Mono supports (e.g. Linux).
- Install Visual Studio 2017 or later
- VC++ features are required.
- Get all submodules
git submodule update --init --recursive
- Build OpenCvSharp
- Open
OpenCvSharp.sln
and build
- Open
- Build OpenCV with opencv_contrib.
- Install .NET Core SDK. https://dotnet.microsoft.com/download/linux-package-manager/ubuntu18-04/sdk-2.1.202
- Get OpenCvSharp source files
git clone https://github.com/shimat/opencvsharp.git
cd opencvsharp
git fetch --all --tags --prune && git checkout ${OPENCVSHARP_VERSION}
- Build native wrapper
OpenCvSharpExtern
cd opencvsharp/src
mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX=${YOUR_OPENCV_INSTALL_PATH} ..
make -j
make install
You should add reference to opencvsharp/src/build/OpenCvSharpExtern/libOpenCvSharpExtern.so
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/home/shimat/opencvsharp/src/build/OpenCvSharpExtern"
- Add
OpenCvSharp4
NuGet package to your project
dotnet new console -n ConsoleApp01
cd ConsoleApp01
dotnet add package OpenCvSharp4
# -- edit Program.cs --- #
dotnet run
Refer to the Dockerfile and Wiki pages.
Licensed under the BSD 3-Clause License.