2014-06-10 3 views
8

मैं एक क्यूआर डिटेक्टर कोड पर काम कर रहा हूं और मुझे एक छवि पर फाइंडिंग पैटर्न (एफपी) का पता लगाने की जरूरत है। मैं वर्गों आप के रूप में QR कोड के कोनों पर मिल जैसी एक द्विआधारी टेम्पलेट बनाया है:किसी छवि में एक क्यूआर कोड पैटर्न का पता कैसे लगाएं?

FP = ones(9); 
FP(2:8,2:8)=0; 
FP(3:7,3:7)=1; 
FP(4:6,4:6)=0; 
figure;imshow(FP) 

और मैं xcorr2 का उपयोग कर इस टेम्पलेट के साथ अधिकतम सहसंबंध के साथ छवि में अंक की तलाश की कोशिश की है। मेरी समस्या स्पष्ट है: मेरे टेम्पलेट छवियों पर वास्तविक आकार क्यूआर कोड की तुलना में बहुत छोटा है।

क्या इसका आकार बदलने के बिना पैटर्न/मास्क ढूंढने का कोई तरीका है? क्या इस समस्या का कोई और दृष्टिकोण है?

एक उदाहरण के रूप में, यहाँ एक QR कोड

enter image description here

+0

क्या आप क्यूआर कोड के साथ छवि का उदाहरण भी पोस्ट कर सकते हैं, कृपया? वास्तविक छवि जिस पर आप मुखौटा लगा रहे हैं। – kkuilla

+0

किया गया! मैंने अपनी पोस्ट संपादित की और एक टेस्ट छवि अपलोड की –

+2

कुछ कीवर्ड जो मदद कर सकते हैं: "स्केल इनवेरिएंट टेम्पलेट मिलान" – nkjt

उत्तर

9

के साथ एक छवि xcorr2 उपयोग करने के लिए आप की जरूरत नहीं है। आपको 1: 1: 3: 1: 1 (अंधेरे-प्रकाश-अंधेरे-प्रकाश-अंधेरे की चौड़ाई) पैटर्न को स्कैनलाइन का उपयोग करके 1 डी में देखना चाहिए।

the standard के पृष्ठ 60 पर एक संदर्भ पहचान एल्गोरिदम का विवरण है।

इसके अलावा, ZXing एक ओपन-सोर्स लाइब्रेरी है जो क्यूआर कोड पहचान/पहचान लागू करती है। आप संदर्भ के लिए अपने कोड पर जा सकते हैं।

संपादित करें: प्रत्येक स्कैनलाइन पर, बाद के अंधेरे और बाद के प्रकाश पिक्सल की गणना करें। आपको अनुक्रम लंबाई का प्रतिनिधित्व करने वाले पूर्णांक की एक सूची प्राप्त होगी।

फिर सबसे बड़ा अंधेरा अनुवर्ती से शुरू करें, और इसके पक्षों को देखें। यदि अंधेरा अनुक्रम लंबाई 300 है, तो इसके आसन्न प्रकाश के बाद लंबाई 50-150 होनी चाहिए, और उनके आसन्न अंधेरे अनुक्रमों की लंबाई 50-150 होनी चाहिए (यह मानक में प्रस्तावित 0.5 की सहिष्णुता के कारण है।) ।

तो यदि आपको ऐसा अनुक्रम मिलता है, तो आप इसे आकार 300 के साथ चिह्नित करते हैं। फिर आप अगले सबसे बड़े अंधेरे अनुक्रम का प्रयास करें और इसी तरह।

बस स्पष्ट करने के लिए, उपरोक्त विधि को 3 चिह्नित कोनों को खोजने के लिए उपयोग किया जाना चाहिए।

+0

ठीक है, मैं इसे आज़माउंगा, लेकिन अगर मैं अपलोड की गई किसी छवि के साथ काम कर रहा हूं तो क्या होगा? उस स्थिति में मैं उस पैटर्न को नहीं देख सकता (यह पिक्सेल-आधारित मानता है), क्योंकि अनुक्रम में अधिक पिक्सेल शामिल हैं, है ना? –

+0

मुझे लगता है कि आपको या तो अपना पैटर्न या संदर्भ छवि स्केल करना होगा। लेकिन चूंकि आप इसे 2 डी के बजाय 1 डी में करते हैं, यह बहुत तेज़ होगा। –

+0

इसके अतिरिक्त, मैंने जो संपादन जोड़ा है उसे देखें। –

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