2010-11-20 14 views
6

मान लीजिए कि मेरे पास एक सर्कल और एक वर्ग है, कहें। छवि के मैट्रिक्स दिए गए वर्ग को खोजने का कोई तरीका है? (केवल एक वर्ग है, और समय वास्तव में एक मुद्दा नहीं है)। धन्यवाद।एल्गोरिदम एक छवि में एक वर्ग आकार खोजने के लिए?

+1

क्या यह एक आदर्श वर्ग है, या "वर्ग जैसा" है? सटीक होने के लिए –

+1

आयताकार। लेकिन यह काफी वैनिला है। मान लीजिए कि इसे एमएस पेंट "स्क्वायर" टूल के साथ खींचा गया है, और फिर gif के रूप में सहेजा गया है। –

+1

वर्ग अक्ष अक्ष से गठबंधन है या यह घुमाया गया है? – thejh

उत्तर

3

चलिए सभी बिंदुओं को "जला" और "अंधेरा" में विभाजित करते हैं।

जलाए गए बिंदुओं की तलाश करें, और ऊपर और नीचे के अंक भी जलाए जाते हैं। वे किनारे का हिस्सा होने की संभावना है।

इसी तरह: यदि एक बिंदु (एक्स, वाई) जलाया जाता है और अंक (x + 1, y), (x + 2, y) भी जलाया जाता है, लेकिन (x-1, y) और (y-1 , वाई) अंधेरे हैं, और समान रूप से वाई-दिशा में, तो आपको सबसे ऊपरी-बाएं कोने में सबसे अधिक संभावना मिलती है। और इसी तरह। इस तरह आप कोनों को पा सकते हैं और फिर उनसे वर्ग प्राप्त कर सकते हैं - एक साधारण दृष्टिकोण प्रतीत होता है।

0

यदि छवि में वर्ग सही है, तो जांचें कि अपेक्षित स्थिति में सीमा है। Thejh के जवाब में छद्म कोड ठीक काम करना चाहिए।

+0

धन्यवाद, गिंटौटास। आपको यह पूछने के लिए खेद है, लेकिन क्या आप थोड़ा अधिक औपचारिक हो सकते हैं? कुछ गणित, या छद्म कोड शायद? मुझे वाक्य को पार करने में परेशानी हो रही है। धन्यवाद। –

+0

हाँ, मेरी पहली वाक्य टूटा हुआ था, क्षमा करें। फिक्सिंग। –

+0

मैंने आपके प्रश्न को गलत समझा, मैंने सोचा कि आप सिर्फ काउंटर की बजाय एक भरे आयत की तलाश में थे, जैसा कि पेंट के "आयत" टूल द्वारा प्रदान किया गया था। इस मामले में समाधान बहुत आसान है। –

3

ऐसा कुछ?

for (x,y of every black pixel) { 
#those methods should return true if the lines length is more than one pixel 
if (hasLineToRight(x,y)&&hasLineToBottom(x,y)) { 
    otherx=highestXOfLineToRight(); 
    othery=highestYOfLineToBottom(); 
    if (isLine(x,y,x,othery)&&isLine(x,y,otherx,y)) { 
    addBoxToList(x,y,otherx,othery); 
    } 
} 
} 

box image

आप propably उच्चतम चौड़ाई और ऊंचाई मूल्यों के साथ बॉक्स का उपयोग करना चाहते हैं।

0

flood filling यादृच्छिक बिंदुओं से शुरू होने तक आपको अपना आयत मिलने तक क्या लगता है?

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