C# emgu "wrapper"- éhez tudna vki ajánlani vmilyen oldalt?
Ettől jobbat?
Amúgy ha OpenCV-zni akarsz, akkor miért nem C++-ban dolgozol? Eddig akármilyen képfeldolgozás projekten dolgoztam mindenhol C++-ban ment a fejlesztés, fel sem merült egy menedzselt nyelv.
Az egyik, hogy magyarul nem fogsz találni, szerintem nincs is, de ebben a szakmában alap az angol.
Aztán ez hozzá nagyjából a legjobb anyag:
Amúgy meg az is való igaz, hogy erre a célra nem az igazi a C#, sokkal nagyobb lesz a programod gépigénye, én is a c++-t javaslom!
Csak a jobb megértés érdekében gondoltam magyar leírások olvasására.
Én meg épp azt hallottam h a C++ al nehézkes a fejlesztés.És h a GUI-t is külsős programmal csinálják/csinálták akiknek olvastam 1 fórumon a hozzászólásaikat.(egyébként a tanár ajánlotta a C sharpot és h szedjem le hozzá az open cv-t.Aztán utánanéztem és kiderült, h ehhez emgu fog kelleni.Körülményes volt a telepítés úgyh most már marad ez :D.A gépigény az esetemben nem olyan lényeges.Nem akarok benne (jelenleg) nagy dolgot véghezvinni.A későbbiekben pedig megfogadom a C++ os tanácsot.Amúgy miben különbözik az open cv és az emgu cv, mármint ami a parancsokat illeti?
Köszönöm az eddigi válaszokat/segítséget.Aki pedig tudna a feladatom elkészítésében is segíteni és ír is privátban(ott természetesen vázolom a dolgokat) annak pedig örök hála! :)
Az emgu CV egy wrapper ami azt illeti, hogy szinte minden metódushívást egy dll egy belépési pontjára illeszt. Ezen kívül persze elfedi a nyelvi különbözőségeket is.
Tehát gyakorlatilag egy C++ ban írt C++ fordítóval lefordított függvénykönyvtárra ül rá egy C# felületként.
A probléma ezzel az, hogy egy külső natív dll hívása menedzselt kódból "veszélyesnek" számít (unsafe code), ás minden hivatkozáskor történik egy jogosultság ellenőrzés is. Továbbá az sem kellemes, hogy az OpenCV elég sok mutatót használ, amit dotNet-ben elég körülményes kezelni - ezt valószínűleg elfedi a wrapper de szűk keresztmetszetnek számít.
Egy menedzselt alkalmazást nem menedzselt kóddal összekötni csak Marshalingal lehet.
Bővebben: [link]
Tehát a teljesítmény nem attól függ milyen a géped, vagy hogy mire használod. Nyilván okos mérnökök dolgoztak az egmuCV-n, de e technológiának sajnos vannak korlátai. Ezek főképp azért vannak mert a dotNet (C#) elsősorban nem képfeldolgozásra készült, vagy egyéb nagy számításigényű feladatokra. A C# egy RAD tool, gyorsan lehet vele kliens alkalmazásokat fejleszteni, ebben a tanárodnak igaza van. A kényelemnek azonban ára van.
> a C++ al nehézkes a fejlesztés
A C++ nem jobb, vagy gyorsabb és nem feltétlenül nehézkesebb bárminél. Egyszerűen több lehetőséget ad, nagyobb "hatalmat" biztosít a rendszer felett, lehetőséget ad, hogy nagy hatékonyságú programokat fejlessz. Nem meglepő, hogy ezért használják előszeretettel olyan feladatokra mint a képfeldolgozás, vagy a grafikus/játék motorok. Ennél a nyelvnél ennek az az ára, hogy összetettebb és könnyebb is benne hibázni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!