2011-06-08 15 views
5

से गैर शून्य सूचकांक प्राप्त करें मेरे पास एक बाइनरी मैट्रिक्स है और गैर-शून्य तत्वों के सूचकांक प्राप्त करना चाहते हैं, अधिमानतः सीवी :: पॉइंट्स के वेक्टर के रूप में। एक ऐसा फ़ंक्शन है जो गैर शून्य तत्वों की गणना करता है, लेकिन यह मेरी आवश्यकता नहीं है।Mat OpenCV

मैटलैब में, समकक्ष कॉल केवल () ढूंढेंगी।

मैं पूरे मैट्रिक्स के माध्यम से खोज सकता हूं और सूचकांक को बचा सकता हूं, लेकिन यह उत्तम दर्जे का नहीं है!

+3

ओपनसीवी शायद ही कभी उत्तम दर्जे का है। –

उत्तर

2

यदि आपको numpy मॉड्यूल का उपयोग करने में कोई बात नहीं है तो NumPy For Matlab Users देखें। nonzero फ़ंक्शन है जो matlab find पर eqivalent है।

>>> m = cv.CreateMat(2,2,cv.CV_16SC1) 
>>> a = numpy.asarray(m) 
>>> a.nonzero() 
(array([1, 1]), array([0, 1])) 
+0

यह पायथन है। हो सकता है कि मुझे जवाब हटा देना चाहिए। ठीक है, पाइथन का उपयोग करें या मेरे उत्तर – Andrey

+0

धन्यवाद, मैं नमस्ते (काफी उत्तम दर्जे का) से परिचित हूं, लेकिन मुझे पहले ही सी ++ में निवेश किया गया है। मैं आपके जवाब को उखाड़ फेंक दूंगा, लेकिन मैं पर्याप्त सम्मानित नहीं हूं! – phil0stine

+0

यह संभवतः स्वीकार्य उत्तर होना चाहिए क्योंकि यह वर्तमान में ऐसा करने का एकमात्र "उत्तम दर्जे का" तरीका है। – twerdster