2010-09-24 21 views
11

संभव डुप्लिकेट:
Image comparison algorithmका पता लगा रहा समान छवियां

तो बुनियादी तौर पर मैं एक कार्यक्रम की जाँच करता है कि क्या 2 छवियों एक ही हैं या नहीं लिखने के लिए की जरूरत है। निम्नलिखित 2 छवियों पर विचार करें:

http://i221.photobucket.com/albums/dd298/ramdeen32/starry_night.jpg

http://i221.photobucket.com/albums/dd298/ramdeen32/starry_night2.jpg

खैर वे दोनों एक ही चित्र हैं, लेकिन मैं कैसे करता है, तो इन छवियों को एक ही कर रहे हैं देखने के लिए जाँच करें। मैं केवल मीडिया कार्यों तक ही सीमित हूं। मैं बस इतना सोच सकता हूं कि चौड़ाई ऊंचाई स्केलिंग है और प्रत्येक पिक्सेल के लिए आरजीबी की तुलना करें लेकिन रंग अलग नहीं होगा?

मैं इस पर पूरी तरह से खो गया, किसी भी मदद की सराहना की जाती है।

* ध्यान दें इस अजगर में हो सकता है और (मीडिया लाइब्रेरी) का उपयोग करना पड़ता है

+1

देखें [ छवि तुलना एल्गोरिदम ] (http://stackoverflow.com/questions/1819124/image-comparison-algorithm)। –

उत्तर

4

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

जाहिर है, दो छवियों आप पोस्ट वास्तव में बहुत अलग हैं - तो आप जब छवियों के साथ काम करने और वैसे भी अलग छवि प्रारूप और संपीड़न आदि

पर विचार विचार करने के लिए 'कितना अलग ही है', विशेष रूप से की आवश्यकता होगी , एक समाधान के लिए जो रंग मानों में दिए गए अंतर के लिए अनुमति देता है (लेकिन गलत जगहों पर पिक्सेल के लिए नहीं), मैं निम्नलिखित की तरह कुछ करता हूं;

  1. दो छवियां चुनें।

  2. सबसे पहले समान ऊंचाई और चौड़ाई के लिए सबसे बड़ी छवि को पुन: स्केल करें (यदि आवश्यक हो तो छवि को विकृत करना)।

  3. प्रभावशीलता के तरीके में बहुत अधिक खोए बिना, अगले कदमों को सरल बनाने के लिए छवियों को आसानी से ग्रेस्केल करें। असल में, यहां संभवतः किनारे का पता लगाना भी काम कर सकता है।

  4. दोनों छवियों में प्रत्येक पिक्सेल के माध्यम से जाएं और आरजीबी चैनलों में से प्रत्येक में अंतर को स्टोर करें, या केवल ग्रेस्केल तीव्रता में अंतर को स्टोर करें। आप दो छवियों पर पिक्सेल तीव्रता के बीच अंतर को ध्यान में रखते हुए छवि के आकार को सरणी के साथ समाप्त कर देंगे।

  5. अब, मुझे सटीक मान नहीं पता हैं, लेकिन शायद आप पाएंगे कि यदि आप सरणी पर फिर से चलते हैं तो आप देख सकते हैं कि दो छवियों में प्रत्येक पिक्सेल के बीच का अंतर समान है (या लगभग वही) सभी पिक्सल में। शायद दो छवियों में पिक्सेल तीव्रता के बीच औसत अंतर खोजने के लिए सरणी पर फिर से शुरू करें, फिर छवियों को फिर से फिर से देखें ताकि यह देखने के लिए कि 9 0% मतभेद एक निश्चित दहलीज (5% अंतर?) के भीतर आते हैं या नहीं।

बस एक विचार। बेशक, कुछ अच्छे काम हो सकते हैं जिन्हें मैं आसान बनाने के बारे में नहीं जानता, लेकिन मैं अपनी सांस नहीं पकड़ूंगा!

+0

यह अच्छा है !! हालांकि मैं समझ नहीं पा रहा हूं कि "ग्रेस्केल तीव्रता" से आपका क्या मतलब है। छवि ग्रेस्केल बनाने के लिए आपको प्रत्येक पिक्सेल को सामान्यीकृत करना नहीं है, जैसे कि आर + जी + बी का औसत लेना और फिर आरजीबी को औसत पर रीसेट करना है? – 1337holiday

+0

ग्रेस्केल आरजीबी का औसत नहीं है, लेकिन भारित औसत, आर = 0.2 99, जी = 0.587, बी = 0.114 के साथ। (ऐसा इसलिए है क्योंकि हमारी आंखें लाल या नीले रंग की तुलना में हरे रंग के प्रति अधिक संवेदनशील होती हैं, और कम से कम नीली होती हैं।) – kindall

+0

हम्म अभी भी इसके बारे में थोड़ा अस्पष्ट है, क्या आप एक पिक्सेल के लिए एक बहुत ही बुनियादी गणना दिखा सकते हैं? – 1337holiday

1

ImageMagick पायथन बाइंडिंग और एक तुलना समारोह है। इसे आपके लिए अधिकांश काम करना चाहिए, लेकिन मैंने कभी इसे पायथन में उपयोग नहीं किया है।

0

मुझे लगता है कि जॉन वर्ड्सवर्थ्स उत्तर का चरण 2 सबसे कठिन हो सकता है - यहां आप छवि की एक विस्तृत प्रतिलिपि से निपट रहे हैं, लेकिन क्या आप घूर्णन, फसल या अन्य तरीकों से विकृत छवियों को भी अनुमति देते हैं? यदि ऐसा है तो आपको एक सुविधा मिलान करने वाले एल्गोरिदम की आवश्यकता होगी, जैसे कि ह्यूगिन या अन्य पैनोरामा सृजन सॉफ़्टवेयर में उपयोग किया जाता है। यह मिलान करने वाली विशेषताओं को ढूंढने के लिए विकृत हो जाएगा और फिर आप तुलना करने के अन्य चरणों को कर सकते हैं। आदर्श रूप से आप फोटो से वैन गोग की पेंटिंग को पहचानना चाहते हैं, यहां तक ​​कि मगों पर तस्वीरें भी! एक इंसान के लिए ऐसा करना आसान है, कंप्यूटर के लिए इसे और अधिक जटिल गणित की आवश्यकता होती है।

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