कई पंक्तियों में अरबी छंदों का पता लगाना


12

मुझे कुरान ऐप बनाने की ज़रूरत है और जब कोई उपयोगकर्ता इसे छूता है तो मैं छंदों को पढ़ना चाहता हूं। मुझे जो समस्या आ रही है, वह यह है कि कुछ छंदों का विस्तार डेढ़ पंक्तियों (लाल छंद पर प्रकाश डाला गया) या एक पंक्ति के एक चौथाई भाग में हो सकता है (हरे छंद पर प्रकाश डाला गया)। इसलिए प्रत्येक कविता को टेक्स्टव्यू या किसी अन्य दृश्य में जोड़ने से यह काम नहीं करेगा।

मैं दूसरी छवि में लाल लोगों की तरह छंदों का पता लगाना चाहता हूं। मेरे पास छंद के लिए ऑडियो फाइलें हैं इसलिए भाषण रूपांतरण के लिए पाठ की कोई आवश्यकता नहीं है


1
क्या पृष्ठ को छवि डेटा के रूप में दिया गया है या यूनिकोड पाठ प्रदान किया गया है?

भाषण के लिए पाठ .. लेकिन फिर, कृपया हमें अपना शोध दिखाएं।

मैंने प्रत्येक छंद छवि को गतिशील रूप से चित्रण में जोड़ने की कोशिश की है, लेकिन समस्या यह है कि छवि दृश्य एक और आधी लाइन की तरह विस्तार नहीं करेगा। कभी-कभी कुछ छंदों में एक और एक पंक्ति की आवश्यकता हो सकती है, आशा है कि आपको वही मिला होगा जो मेरा मतलब था। इससे उबरने के लिए मुझे कुछ सुझाव चाहिए।

1
दो लाइनों का उपयोग करें और बस कुछ ओवरहेड है?

1
डेढ़ लाइन से आपका मतलब है कि यह स्क्रीन की चौड़ाई को बढ़ाता है, फिर अगली पंक्ति का आधा हिस्सा नीचे?

जवाबों:


9

यह सरल टेम्पलेट मिलान के साथ काफी सरल रूप से हल किया जा सकता है। मुझे नहीं पता कि आपने इसे कैसे स्थापित किया है, इसलिए मैं केवल एल्गोरिथ्म का वर्णन करूंगा और चित्रों का उपयोग करूंगा।

  • ध्यान दें कि पद्य संख्याओं की एक विशिष्ट सीमा होती है जिसका उपयोग आसानी से किसी पद्य के प्रारंभ और अंत का पता लगाने के लिए किया जा सकता है। तो उस पैटर्न के लिए एक बिनाराइज्ड टेम्पलेट बनाएं और उसे स्टोर करें। कुछ इस तरह:

    यहाँ छवि विवरण दर्ज करें

  • चूँकि एक स्क्रीन में लाइनों की संख्या पहले से ज्ञात होती है (आप पृष्ठ को प्रारूपित कर रहे हैं) और प्रत्येक कविता में एक निरंतर ऊँचाई है, आप आसानी से अनुमान लगा सकते हैं (एल्गोरिदमिक रूप से) जहां छंदों के केंद्र बिंदुओं के लिए Y निर्देशांक स्क्रीन पर होना चाहिए । यह विचार प्रदर्शित करता है:

    यहाँ छवि विवरण दर्ज करें

  • जब उपयोगकर्ता एक कविता को छूता है, तो XY निर्देशांक प्राप्त करें और Y समन्वय को निकटतम कविता केंद्र में स्नैप करें।

  • फिर एक्स के साथ समन्वय करना, उस पंक्ति के पार एक साधारण टेम्पलेट मिलान (क्रॉस-सहसंबंध) करना। पहला मैच (क्रॉस-सहसंबंध में शिखर) आगे की दिशा में (बाईं ओर), कविता के लिए अंतिम बिंदु होगा। यदि रिवर्स दिशा (दाईं ओर) में कोई मैच नहीं हैं, तो एक कविता को स्थानांतरित करें (जो आप कर सकते हैं, क्योंकि आप केंद्र के वाई समन्वय को जानते हैं) और दोहराएं। बाएं छोर से पहला मैच कविता का शुरुआती बिंदु होगा। इसी तरह, यदि लाइन पर कोई फॉरवर्ड मैच नहीं है, तो एक लाइन को नीचे ले जाएं और दोहराएं।

    यहाँ विचार का संक्षिप्त चित्रण है। पीला बॉक्स वह जगह है जहां उपयोगकर्ता कविता को छूता है। फिर आप अपने टेम्पलेट के साथ क्रॉस-सहसंबंध करते हैं और नीले घेरे का मिलान होगा।

    यहाँ छवि विवरण दर्ज करें

    यदि आप इसे क्रिया में देखने में रुचि रखते हैं, तो मैं इस उत्तर में टेम्पलेट मिलान का भी उपयोग करता हूं ।

  • एक बार जब आप कविता के लिए प्रारंभ बिंदु निर्धारित कर लेते हैं, तो उस सीमा के अंदर कविता संख्या का पता लगाने के लिए एक अरबी पाठ पहचानकर्ता का उपयोग करें और संबंधित ऑडियो फ़ाइल चलाएं।


सरल समाधान:

एक सरल समाधान, यदि आप इसके माध्यम से नहीं जाना चाहते हैं तो कविता के शुरुआती बिंदुओं के XY निर्देशांक को संग्रहीत करना है (इसे सरल रखें और केंद्र बिंदुओं का उपयोग करें) और एक बार उपयोगकर्ता इनपुट के निर्देशांक प्राप्त करने के बाद, आप फिर से स्नैप कर सकते हैं इसे केंद्र में रखें और फिर पीछे की ओर देखें कि कविता कहाँ से शुरू होती है। यह तेजी से होने का फायदा हो सकता है।

मैंने इसे पहले समाधान के रूप में आगे नहीं रखा क्योंकि आप टिप्पणियों में एक समान विचार को अस्वीकार करते थे। अंत में, यह आपके बाधाओं पर निर्भर करता है - क्या आप बल्कि कम्प्यूटेशनल काम करेंगे (टेम्पलेट मिलान - जो, वैसे, आपको टेम्पलेट को स्टोर करने की भी आवश्यकता है) या मेमोरी (स्टोरिंग निर्देशांक) का उपयोग करना।

अगर मैं तुम थे, मैं शायद इस एक के साथ जाना होगा, लेकिन छवि प्रसंस्करण समाधान की कोशिश करने के लिए मजेदार हो सकता है।


योदा या कोई और, क्या आप इस मुद्दे को थोड़ा बेहतर ढंग से समझा सकते हैं कृपया?!? आमतौर पर जो मैं जानना चाहता हूं और जो नहीं मिल रहा है वह सिर्फ नीले हलकों के अंदर कैसे या कैसे नंबर लेना है?! आपका बहुत बहुत धन्यवाद!

@xmenus एक बार जब आप सर्कल पर लॉक हो जाते हैं (जो आप विशिष्ट बॉर्डर से मेल खाते पैटर्न द्वारा करते हैं), तो आपको अंदर की सामग्री की पहचान के लिए एक अरबी पाठ / संख्या मान्यता पुस्तकालय का उपयोग करना होगा। मैं अरबी नहीं जानता और इसलिए कुछ भी सुझा नहीं सकता। आप ओपी से पूछने की कोशिश कर सकते हैं ...
लोरम इप्सम

@xmenus यदि आपको अरबी के साथ मदद की आवश्यकता है, तो आप मुझसे पूछ सकते हैं, लेकिन जो आप पूछ रहे हैं, अगर आप बस एक अरबी संख्या का पता लगाना चाहते हैं, तो आप संभवतः उनके लिए उसी तरह से मेल खा सकते हैं जैसे आप मंडलियों के साथ कर रहे हैं।
१५:४२ पर स्पेसी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.