EmguCV 64-bit qurish ish vaqti xatosi

W7/x64 operatsion tizimida 32-bitlik EmguCV ( Version 2.3 ) ni 64-bit yordamida .net 4.0 va VS2010 yordamida tuzadigan muammolarga duch kelyapman. Savdo litsenziyasini xarid qildim, agar u tegishli bo'lsa va uni olinganda taqdim etilgan havolalardan yuklab oling.

Xato

System.TypeInitializationException was unhandled
 Message=The type initializer for 'Emgu.CV.CvInvoke' threw an exception.
 Source=Emgu.CV
 TypeName=Emgu.CV.CvInvoke

ushbu maqolada berilgan ko'rsatmalarga amal qildim. Aslida men maqoladagi namunali loyihalardan foydalanardim va V2.2 bilan yaxshi tuzilgan edim, lekin V2.3 ikkiliklari bilan almashtirganda (ikkala emgu va opencv) xatoga yo'l qo'ying.

Kimdir Emgu ( Version 2.3.x ) x64 loyihasini muvaffaqiyatli qurganmi? Iltimos, ba'zi ko'rsatmalar bering.

2
va ha opencv ichidagi to'g'ri ikkiliklarini disk raskadrovka papkasiga qo'shdim. Shunday qilib, oddiy nuqsonli dll xatosi bo'lishi mumkin emas.
qo'shib qo'ydi muallif Mikos, manba
@Chris, rahmat. Men sizning yo'riqnomangizga maktubni kuzatdim - bu juda foydali bo'ldi. Sizning yordamingiz va yordamingizga samimiy minnatdormiz.
qo'shib qo'ydi muallif Mikos, manba
"Image dan Image dan OpenCV tomonidan qo'llab-quvvatlanmaydi"
qo'shib qo'ydi muallif Mikos, manba
Duch keladigan xato - TypeInitializationException va yuqoridagi konvertatsiya (sic) xatosi. Muammo nima ekanini bilmayman. Yordamingiz uchun rahmat.
qo'shib qo'ydi muallif Mikos, manba
Almashishingiz mumkin bo'lgan emgu 2.3 (x64) bilan baham ko'rishingiz mumkin bo'lgan namunaviy loyiha bormi?
qo'shib qo'ydi muallif Mikos, manba
Kodekbozani bu yerdan topishingiz mumkin: yousendit.com/download/T2dmNnFJYXk1R05WeHNUQw
qo'shib qo'ydi muallif Mikos, manba
qo'shib qo'ydi muallif Mikos, manba
Xristian Mikos, maqolaning men yozganligini topish juda kulgili edi. Endi muammolarni ko'rib chiqaman va qaytib kelaman. Cheers
qo'shib qo'ydi muallif Chris, manba
Salom, men EMGU 2.3.0 x64 yordamida loyihalarni tayyorladim va hamma narsa yaxshi ishlaydi. Siz qayd etgan xato to'g'ri platformani aniqlamaslik uchun pastga tushishi mumkin. InnerException ("HRESULT: 0x8007000B dan istisno") dasturini noto'g'ri formatda yuklashga urinib ko'rilganmi?}} Agar shunday bo'lsa, bu muammo. Agar shunday bo'lmasa, siz uni joylashtira olmaysiz. Cheers
qo'shib qo'ydi muallif Chris, manba
OK, shuning uchun siz tasvir turlarini o'zgartirganda. Ehtimol, bir vaqtning o'zida bir nechta ma'lumot turini aylantirishga harakat qilyapsizmi, nima uchun EMGU bunday holatni yoqtirmaydi. Agar dan ni o'zgartirmoqchi bo`lsam My_double_image = my_BGR_BYTE_Image.Convert () (); ga keyin ga aylantirib shunga o'xshash xatoni qayta ishlab chiqishga muvaffaq bo'ldim, shuning uchun endi rasm chuqurligini ma'lumotlar turi oldidan o'zgartirishi kerak. Agar bu xatoga yo'l qo'yadigan kodni jo'natishda yordam bermasa
qo'shib qo'ydi muallif Chris, manba
Yangi 2.3.0 versiyasini loyihada ishlash imkoniyatini olishim bilanoq kodni o'rnatish uchun o'rnataman
qo'shib qo'ydi muallif Chris, manba

3 javoblar

Ushbu xatoning sababi (har bir kishi bir xil muammolarga duch ketsa), dastur "bin" katalogida bo'lsa ham, dastur opencv_imgproc231.dll yoki opencv_core231.dll-ga kira olmaydi.

Ikkita echim bor:

  1. Loyihani qo'shing va ularning funktsiyalarini copy always ga joylashtiring, chunki ular EMGU ning ikkita asosiy fayllari.

  2. 1-qadam ishlamasa, bin papkasidagi joriy kalit fayllarni yangi nusxalar bilan almashtiring.

Har ikki usul ham muvaffaqiyatsiz bo'lsa, qurilma bilan bog'liq muammo bo'lishi mumkin, shuning uchun Sourceforge'dan EMGU yangi nusxasini yuklab oling va qayta harakat qilib ko'ring. Xatolik keyinchalik uni qanday hal qilish haqida aniqroq tushuntirish uchun texnik maqola ichiga kiritiladi.

Cheers, Chris

4
qo'shib qo'ydi
Salom @ Chris. Men loyihaga ushbu ikki havola qo'shishni sinab ko'rdim, biroq qanday qilib uni qo'shishimga ruxsat berilmadi. Yo'naltiruvchi, unga kirish mumkin emasligi sababi sababli qo'shilmasligi yoki tegishli o'rnatish/MAQOMOTI komponenti emasligini aytdi. Iltimos yordam bering!
qo'shib qo'ydi muallif ykombinator, manba
Rahmat, men uni ishga tushirdim. :)
qo'shib qo'ydi muallif ykombinator, manba
Yuqorida keltirilgan fayllar EMGU nima samarali emasligini tekshiradigan boshqarilmaydigan opencv kodidir. NET komponentlari va chiqish katalogiga yoki loyihangizdagi mavjud fayllarga qo'shilishi kerak. Codeproject-da mening maqolamga qarang va sizni bu orqali yuradi codeproject.com/KB/cs/ EMGU_Image_Processing.aspx Cheers
qo'shib qo'ydi muallif Chris, manba

Ularni loyihaga kiritishning hojati yo'q; VS sizga ruxsat bermaydi. Faqat FaceRecognizer.cs -ni oching ommaviy statik qisman CvInvoke da o'zgartirish va o'zgartirish:

[DllImport(CvInvoke.EXTERN_LIBRARY, CallingConvention = CvInvoke.CvCallingConvention)] 

quyidagilar:

[DllImport(Emgu.CV.CvInvoke.EXTERN_LIBRARY, CallingConvention = Emgu.CV.CvInvoke.CvCallingConvention)] 

Barchasini o'zgartiring.

1
qo'shib qo'ydi
VS sizga ruxsat bermaydi?
qo'shib qo'ydi muallif Austin Henley, manba

Avval buni sinab ko'ring: emgu cv installaiton katalogidan namunali loyihani oching va ishga tushiring. masalan, salom dunyo misolini oching va uni ishlatishga harakat qiling. agar namunaviy loyihalar muammoga duch kelsa, u holda o'rnatish to'g'ri bo'ladi.

Emgu cv namunaviy loyihalari uchun loyiha Build sozlamasidagi Chiqish yo'li parametr qiymati '.. \ ga o'rnatiladi. \ ming " belgisini bosing. Loyiha masalangizni to'g'rilash uchun, loyihani ingl. Studiyada oching va Chiqish yo'li parametrini 'C: \ Emgu \ emgucv 2.9 \ ming' -ga sozlang. Loyihani ishga tushirishga harakat qiling. U muvaffaqiyat bilan ishlashi kerak.

Now, set back the value of Output Path option to bin\Debug\. Then, add all DLL files in the 'C:\Emgu\emgucv 2.9\bin' folder to your project using ADD -> Existing Item menu. similarly, add all DLL files in the 'C:\Emgu\emgucv 2.9\bin\x64' folder to your project using ADD -> Existing Item menu. Now, go to properties window and set Copy to Output Directory option of all dll files to Copy Always. Finally, in the Configuration Manager window, create a new configuration for x64 platform.

Omad

0
qo'shib qo'ydi