Cross platform wrapper of OpenCV for .NET Framework.
Old versions of OpenCvSharp is maintained in opencvsharp_2410.
Package | NuGet |
---|---|
OpenCvSharp core libraries | |
All-in-one package for Windows - same as OpenCvSharp3-AnyCPU | |
Native bindings for Windows x64/x86 | |
Native bindings for Ubuntu 18.04 x64 | |
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.
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 tesseract and leptonica using vcpkg
.\vcpkg install tesseract:x64-windows-static
.\vcpkg install tesseract:x86-windows-static
.\vcpkg integrate install
- 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.