OpenCvSharp
Cross platform wrapper of OpenCV for .NET Framework.
Old versions of OpenCvSharp is maintained in opencvsharp_2410.
Installation
NuGet
Search 'opencvsharp3' on the NuGet Package Manager.
Package | NuGet |
---|---|
All-in-one package - bundles native OpenCV DLLs | |
Minimum package | |
Development Build Package | https://ci.appveyor.com/nuget/opencvsharp |
Downloads
If you do not use NuGet, get DLL files from the release page.
Requirements
- 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
Documents
https://shimat.github.io/opencvsharp_docs/index.html
Usage
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();
}
}
}
Features
- 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).
OpenCvSharp Build Instructions
Windows
- 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
Ubuntu 18.04
- 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 -j4
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
OpenCvSharp3-WithoutDll
NuGet package to your project
dotnet new console ConsoleApp01
cd ConsoleApp01
dotnet add package OpenCvSharp3-WithoutDll
dotnet run
Older Ubuntu
Refer to the Dockerfile and Wiki pages.
License
Licensed under the BSD 3-Clause License.