2009-06-12 12 views
7

मैं इस http://labs.ideeinc.com/multicolr, जैसी उपयोगिता बनाने की कोशिश कर रहा हूं लेकिन मुझे नहीं पता कि वे कौन से एल्गोरिदम का उपयोग कर रहे हैं, क्या किसी को पता है?विजुअल समानता खोज एल्गोरिदम

+0

मुझे यकीन नहीं है कि यह एक "दृश्य समानता" पहचान है, रंगीन अनुक्रमण (रंग और क्षेत्र हिस्सेदारी) की तरह। चूंकि रंग संख्यात्मक घटकों से बना है, इसलिए आप इसमें क्रॉल करने के लिए एल्गोरिदम बना सकते हैं। –

उत्तर

5

वे जो भी कर रहे हैं वह हिस्टोग्राम से मेल खाता है।

तो अपनी छवियों के लिए एक हिस्टोग्राम बनाएं। छवि के आकार से हिस्टोग्राम को सामान्यीकृत करें। हिस्टोग्राम रंगों के रूप में कई तत्वों वाला एक वेक्टर है। आपको 32,24 की आवश्यकता नहीं है, और शायद सटीकता के 16 बिट भी नहीं हैं और इससे आपको धीमा कर दिया जाएगा। प्रदर्शन कारणों से, मैं हिस्टोग्राम को 4, 8, और 10-12 बिट्स तक मैप कर दूंगा।

  • सभी 4 बिट हिस्टोग्राम और आपके नमूना रंगों के बीच एक अस्पष्ट least distance compare करें।
  • फिर उस सेट को लें और 8 बिट हिस्टोग्राम तुलना करें।
  • तो शायद शेष सेट के साथ 10 या 12 बिट हिस्टोग्राम की तुलना करें। यह उच्चतम प्रदर्शन खोज होगी, क्योंकि आप छोटे सेट को खोजने के लिए कुल सेट की तुलना बहुत कम गणना के साथ कर रहे हैं।
  • तो फिर तुम गणना के एक उच्च संख्या के साथ छोटे सबसेट पर काम, आदि

असली बड़ा चाल समान हिस्टोग्राम मिलान के लिए सबसे अच्छा एल्गोरिथ्म मिल रहा है।

  • दूरी गणना के साथ शुरू करें। 3 आयामों में मुझे लगता है कि यह किया गया था:

    SQRT ((x1-x2)^2 + (y1-y2)^2 + (z1-z2)^2)

मैं यह कर रहा हूँ स्मृति से, तो सुनिश्चित करने के लिए इसे देखो।

  • आपके उद्देश्यों के लिए, आपके पास 3 से अधिक आयाम होंगे, इसलिए आपके पास और शर्तें होंगी। एक 4 बिट हिस्टोग्राम में 16 शब्द होंगे, 8 बिट में 256 शब्द होंगे, आदि याद रखें कि इस प्रकार का गणित धीमा है, इसलिए वास्तव में SQRT भाग नहीं करें। यदि आप अपनी छवियों के आकार को सामान्य रूप से छोटा करते हैं, तो 10,000 पिक्सल तक कहें, तो आपको पता है कि आपको केवल x^2 मान 0..10,0000 के लिए करना होगा। x^2 की एक लुकअप तालिका की पूर्व-गणना करें जहां x 0..10,000 से चला जाता है। तब आपकी गणना तेजी से चली जाएगी।

  • जब आप पैलेट से रंग चुनते हैं, तो बस उस रंग = 10,0000 के साथ हिस्टोग्राम बनाएं। 2 का चयन करते समय, रंग 1 = 5000, रंग 2 = 5000 आदि के साथ हिस्टोग्राम बनाएं

  • अंत में आपको वास्तविक दुनिया से मेल खाने के लिए फज कारकों में जोड़ना होगा, लेकिन आपको इन्हें परीक्षण के साथ मिल जाएगा।

+0

धन्यवाद मैं ImageJ और इस programe एल्गोरिथ्म http://rsb.info.nih.gov/ij/plugins/color-inspector.html – Emrah

+0

का उपयोग करेगा मैं कर रहा उल्लेख एक फजी कम से कम दूरी की तुलना करें। मुझे लगता है कि मैं दवाओं पर था। बस कम दूरी की तुलना करें। :) – johnnycrash

0

शायद छवियों में उपयोग किए गए रंगों का हिस्टोग्राम बनाना, फिर उपयोगकर्ता द्वारा चयनित रंगों के लिए सबसे अच्छा फिट करना।

2

मुझे सुझाव है कि आप अपने डेटाबेस में छवियों में मौजूद रंगों के किसी प्रकार का क्लस्टरिंग करें।मेरा मतलब है, अपने डेटाबेस में प्रत्येक छवि के लिए:

  • छवि
  • क्लस्टरिंग प्रदर्शन में प्रत्येक पिक्सेल के रंग इकट्ठा एकत्र रंगों पर
  • दुकान (मान लीजिए कि 5 समूहों के साथ k-मतलब क्लस्टरिंग हैं) छवि

जब उपयोगकर्ता एक या अधिक क्वेरी रंग आप लालची मिलान के कुछ प्रकार दिए गए रंग और रंग वर्णनकर्ता (5 reprsentative रंगों के बीच सबसे अच्छा मैच चुनने कर का एक सेट प्रदान के प्रतिनिधि वर्णनकर्ता के रूप में संकुल रंग) अपने डेटाबेस में प्रत्येक छवि के ।

अपनी छवि संग्रह के आकार, क्या है आकार के आधार पर कुछ खोज अनुक्रमण ही alogorith से बड़ी समस्या हो सकती है, क्योंकि?

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