Uporabite OpenCV v jeziku C # (z uporabo OpenCVSharp)
Use Opencv C
1. Kaj je OpenCVSharp
Da bi rešili problem pisanja programov OpenCV v programu Csharp, sem poglobil raziskave in uporabil zelo učinkovito metodo (GOCW), ki sem jo OpenCVSharp videl občasno pri zbiranju podatkov v današnjem času, časovno po dolgem obdobju. v razvoju bi moralo biti veliko krajev, kjer lahko črpate neposredno ali jih neposredno uporabljate.
OpenCVSharp je razvil japonski inženir na https://github.com/shimat/opencvsharp. Gre za zavijalnik .NET OpenCV, ki je bližje prvotnemu OpenCV kot Emgucv in ima veliko vzorčnih referenc, ki so objavljene v LGPL in so komercialno prijazne (v bistvu enakovredne BSD).
2. Kakšne so značilnosti OpenCVSharp?
- Neposredno pakirano več metod OpenCV, ki zmanjšujejo težave pri učenju, lažje za uporabo kot EmguCV
- Večina jih podeduje vmesnik IDisposable, kar je priročno za uporabo stavka using.
- Izvirni slog OpenCV lahko pokličete neposredno
- Slikovne predmete lahko neposredno pretvorite v Bitmap in WPF WriteBitmap, ki jih uporablja GDI
- Podpora Mono.
3, Konfiguracija okolja OpenCVSharp v VS
Obstajata dva načina: eden je uporaba NuGet (Upravitelj paketov knjižnic); način izdaje te konfiguracije se splača naučiti drugega paketa za neposreden prenos.
Prvi način: uporabite NuGet (upravitelj paketov knjižnic), najprej odprite VS, v možnosti [Orodja], ali obstaja [Upravitelj paketov knjižnic]
Če ga nimate, namestite NuGet sami.
Https://jingyan.baidu.com/article/066074d636fd19c3c21cb0a2.html (reproducirano iz Baidu)
Po namestitvi odprite [Orodja] -> [Upravitelj knjižničnega paketa] -> [Upravljanje paketa rešitev NuGet], v njem poiščite OpenCVSharp, izberite ustrezen klik [Namesti] (po možnosti namestite najnovejšega). Vedno čakam na zaključek.
Po končani namestitviDatoteko DLL namestitvene datoteke morate namestiti v mapo za odpravljanje napak izvršljive datoteke projekta.Kako najti nameščene datoteke?
Drugi način je neposreden prenos namestitvenega paketa.
https://github.com/shimat/opencvsharp/releases
Po prenosu ga izvlecite v mapo (katero koli mapo)
Ko je datoteka nameščena, z desno miškino tipko kliknite [Referenca] -> [Dodaj referenco] v [Rešitev], izberite [Prebrskaj] in v referenco dodajte datoteko OpenCvSharp.dll v preneseni datoteki.
Prenese se v datotekoOpenCvSharpExtern.dll se kopira v mapo za odpravljanje napak izvršljive datoteke. Vse konfiguracije so v redu. Naslednji test je uspešno konfiguriran.。
Če uporabite prvo metodo, bo samodejno kopirala datoteko DLL, če boste uporabili drugo, jo morate kopirati sami.
4, testna koda
using System.Collections.Generic
using System.Linq
using System.Text
using System.Threading.Tasks
using OpenCvSharp / / Add the corresponding reference
namespace OpenCVSharpTest2
{
class Program
{
static void Main(string[] args)
{
Mat source = new Mat(@'1.bmp', ImreadModes.Color)
Cv2.ImShow('Demo', source)
Cv2.WaitKey(0)
}
}
5, načelo
Po predhodnem razumevanju izvajanja OpenCVSharp, poleg tega, da je neverjeten, bi rad vedel, kako se izvaja. Navsezadnje sem veliko razmišljal o metodah in veliko časa preživel na GOCW.
Prenesite glavno kodo, če jo želite odpreti, potrebujete vs2017.
Tu lahko vidimo iz strukture, OpenCVsharpExtern je koda c ++, druga pa koda Csharp, po pričakovanjih mora biti paket CLR. Močno se opira na 341
OpenCVSharp, ki vsebuje veliko število paketov za funkcije OpenCV, bi moral narediti kar nekaj dela.
6, predhodni povzetek
Čeprav je OpenCVSharp v primerjavi z emgucv zelo poenostavljen, ima tudi veliko zmogljivost kode, predvsem zato, ker ko boste želeli priključiti OpenCV, boste neizogibno morali opraviti veliko ponavljajočih se del - in vsako nadgradnjo OpenCV
Možno je, da je treba obe strani nadgraditi sinhrono. Zato še vedno mislim, da je metoda GOCW primernejša, to je, da je vmesniški program odgovoren za vmesnik, ne delajte znova, da bi izumili kolo.
Glede na to je v tem projektu še vedno veliko krajev, ki jih je vredno raziskati. Hvala, ker ste to prebrali, upam, da vam pomagam.