在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:opencvsharp开源软件地址:https://gitee.com/zl33842901/opencvsharp开源软件介绍:Old versions of OpenCvSharp are stored in opencvsharp_2410. NuGetNative binding (OpenCvSharpExtern.dll / libOpenCvSharpExtern.so) is required to work OpenCvSharp. To use OpenCvSharp, you should add both Packages named OpenCvSharp3-* and OpenCvSharp-* are deprecated.
Docker imageshttps://hub.docker.com/u/shimat
InstallationWindows (except UWP)Add UWPAdd Ubuntu 18.04Add dotnet new console -n ConsoleApp01cd ConsoleApp01dotnet add package OpenCvSharp4dotnet add package OpenCvSharp4.runtime.ubuntu.18.04-x64# -- edit Program.cs --- # dotnet run Google AppEngine Flexible (Ubuntu 16.04)Some Docker images are provided to use OpenCvSharp with AppEngine Flexible. The native binding (libOpenCvSharpExtern) is already built in the docker image and you don't need to worry about it. FROM shimat/appengine-aspnetcore3.1-opencv4.5.0:20201030ADD ./ /app ENV ASPNETCORE_URLS=http://*:${PORT} WORKDIR /app ENTRYPOINT [ "dotnet", "YourAspNetCoreProject.dll" ] Ubuntu 18.04 Docker imageYou can use the DownloadsIf you do not use NuGet, get DLL files from the release page. Target OpenCVRequirements
PS1> Install-WindowsFeature Server-Media-Foundation
OpenCvSharp won't work on Unity and Xamarin platform. For Unity, please consider using OpenCV for Unity or some other solutions. OpenCvSharp does not support CUDA. If you want to use the CUDA features, you need to customize the native bindings yourself. UsageFor more details, see samples and Wiki pages. Always remember to release Mat instances! The // C# 8// Edge detection by Canny algorithmusing OpenCvSharp;class Program { static void Main() { using var src = new Mat("lenna.png", ImreadModes.Grayscale); using var dst = new Mat(); Cv2.Canny(src, dst, 50, 200); using (new Window("src image", src)) using (new Window("dst image", dst)) { Cv2.WaitKey(); } }} As mentioned above, objects of classes, such as Mat and MatExpr, have unmanaged resources and need to be manually released by calling the Dispose() method. Worst of all, the +, -, *, and other operators create new objects each time, and these objects need to be disposed, or there will be memory leaks. Despite having the using syntax, the code still looks very verbose. Therefore, a ResourcesTracker class is provided. The ResourcesTracker implements the IDisposable interface, and when the Dispose() method is called, all resources tracked by the ResourcesTracker are disposed. The T() method of ResourcesTracker can trace an object or an array of objects, and the method NewMat() is like T(new Mat(...). All the objects that need to be released can be wrapped with T().For example: t.T(255 - t.T(picMat * 0.8)) . Example code is as following: using (var t = new ResourcesTracker()){ Mat mat1 = t.NewMat(new Size(100, 100), MatType.CV_8UC3, new Scalar(0)); Mat mat3 = t.T(255-t.T(mat1*0.8)); Mat[] mats1 = t.T(mat3.Split()); Mat mat4 = t.NewMat(); Cv2.Merge(new Mat[] { mats1[0], mats1[1], mats1[2] }, mat4);}using (var t = new ResourcesTracker()){ var src = t.T(new Mat(@"lenna.png", ImreadModes.Grayscale)); var dst = t.NewMat(); Cv2.Canny(src, dst, 50, 200); var blurredDst = t.T(dst.Blur(new Size(3, 3))); t.T(new Window("src image", src)); t.T(new Window("dst image", blurredDst)); Cv2.WaitKey();} Features
Code sampleshttps://github.com/shimat/opencvsharp_samples/ Documentshttp://shimat.github.io/opencvsharp/api/OpenCvSharp.html OpenCvSharp Build InstructionsWindows
.\download_opencv_windows.ps1
How to customize OpenCV binaries yourselfIf you want to use some OpenCV features that are not provided by default in OpenCvSharp (e.g. GPU), you will have to build OpenCV yourself. The binary files of OpenCV for OpenCvSharp for Windows are created in the opencv_files repository. See the README.
Ubuntu 18.04
git clone https://github.com/shimat/opencvsharp.gitcd opencvsharpgit fetch --all --tags --prune && git checkout ${OPENCVSHARP_VERSION}
cd opencvsharp/srcmkdir buildcd buildcmake -D CMAKE_INSTALL_PREFIX=${YOUR_OPENCV_INSTALL_PATH} ..make -j make install You should add reference to export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/home/shimat/opencvsharp/src/build/OpenCvSharpExtern"
dotnet new console -n ConsoleApp01cd ConsoleApp01dotnet add package OpenCvSharp4# -- edit Program.cs --- # dotnet run Older UbuntuRefer to the Dockerfile and Wiki pages. DonationsIf you find the OpenCvSharp library useful and would like to show your gratitude by donating, here are some donation options. Thank you. |
请发表评论