2014-06-07 16 views
8

मैं एकता डेवलपर हूं जो पहली बार ओपनसीवी पर अपने हाथों की कोशिश कर रहा है। मेरा प्रारंभिक लक्ष्य कैमरा चलाने और unity3d में opencv के माध्यम से ब्लॉब्स का पता लगाने के लिए है। मैं ओपनसीवी में नया हूं और इसे यूनिटी 3 डी में एकीकृत करने की कोशिश कर रहा हूं (विंडोज 8 पर यूनिटी 4.3.2 और यूनिटी 4.2.1 एफ के साथ मैक पर)। मैंने this धागा का पालन किया। लेकिन जैसे ही मैं एक नई सी # स्क्रिप्ट जोड़ता हूं, मुझे निम्न त्रुटि मिल रही है। और जिस क्षण मैं इस स्क्रिप्ट को हटाता हूं, त्रुटि जाती है (यह स्क्रिप्ट एकता उत्पन्न सी # स्क्रिप्ट है)।ओपनसीवी + यूनिटी 3 डी एकीकरण

Internal compiler error. See the console log for more information. output was: 
Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded. 
    at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool) 
    at System.Reflection.Assembly.GetTypes() [0x00000] in <filename unknown>:0 
    at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext ctx, System.Type extensionType) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.GlobalRootNamespace.ComputeNamespaces (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.LoadReferences() [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.Compile() [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 

मुझे यूनिटी और ओपनसीवी एकीकरण के बारे में बहुत कुछ नहीं मिला। यह बहुत अच्छा होगा अगर आप इस त्रुटि से मेरी मदद कर सकते हैं और मुझे और जानने के लिए हालिया ट्यूटोरियल पर इंगित कर सकते हैं।

अग्रिम धन्यवाद!

उत्तर

9

हमें हाल ही में एक ही समस्या का सामना करना पड़ा, मैं कुछ सामान्य जानकारी पोस्ट करूंगा जो आपकी समस्या का समाधान करेगी और अन्य लोगों की सहायता करेगी।

  1. OpenCV पुस्तकालय और अपने OpenCV परियोजना स्थिर पुस्तकालयों (see OpenCV as a static library) के रूप में संकलित किया जाना चाहिए।
  2. ओपनसीवी लाइब्रेरी और आपकी ओपनसीवी परियोजना 32 बिट और 64 बिट आर्किटेक्चर दोनों के लिए संकलित की जानी चाहिए।
  3. संपादक के अंदर 32 बिट संस्करण का उपयोग किया जाएगा (चूंकि यूनिटी 3 डी संपादक केवल 32 बिट आर्किटेक्चर का समर्थन करता है), उत्पादन के लिए 64 बिट संस्करण।
  4. संकलित ओपनसीवी प्रोजेक्ट को एसेट> प्लगइन्स फ़ोल्डर के अंदर कॉपी किया जाना चाहिए, ओपनसीवी लाइब्रेरी को संपत्ति फ़ोल्डर के अंदर कॉपी किया जाना चाहिए। using निर्देशों को

    using UnityEngine; 
    using System.Collections; 
    using System; 
    using System.Runtime.InteropServices; 
    
    public class PluginImport : MonoBehaviour { 
        //Lets make our calls from the Plugin 
        [DllImport ("OpenCVProject")] 
        private static extern int openCVFunction(); 
    
        void Start() { 
         openCVFunction(); 
        } 
    } 
    

    वेतन ध्यान:

  5. एक C# स्क्रिप्ट के अंदर अपने OpenCV परियोजना का प्रयोग करने के लिए इस कोड उदाहरण का अनुसरण!

जानकारी के अन्य स्रोत:

+0

धन्यवाद @albemala! मुझे इसे आज़माना है। – jainam

+0

@jainam और अगर यह काम करता है, तो कृपया हमें एक अपडेट दें! –

+0

क्या आप जिथब पर नमूना प्रोजेक्ट पोस्ट कर सकते हैं? आप यह सुनिश्चित कर रहे हैं कि कैमरा एकीकरण एकता – ina

संबंधित मुद्दे