मैं एक एप्लिकेशन के स्क्रीनशॉट ले रहा हूं, और यह पता लगाने की कोशिश कर रहा हूं कि सटीक छवि पहले देखी गई है या नहीं। मैं छोटे बदलावों को अलग-अलग रूपों का पता लगाने के लिए देख रहा हूं - उदा। अगर छवि में टेक्स्ट है, और वर्तनी में परिवर्तन होता है, तो यह मेल नहीं खाता है।छवि बहुत ही समान छवियों के लिए हैश
ज्ञात छवियों के डेटाबेस में देखने के लिए मैं स्क्रीन-शॉट छवि की सामग्री के एमडी 5 हैश का सफलतापूर्वक उपयोग कर रहा हूं, और पता लगाता हूं कि यह पहले देखा गया है या नहीं।
अब, मैंने इसे किसी अन्य मशीन पर पोर्ट किया है, और कॉन्फ़िगरेशन से सटीक मिलान करने के मेरे प्रयासों के बावजूद, मुझे पुरानी मशीन पर कभी-कभी अलग-अलग छवियां मिल रही हैं। जब मैं अलग कहता हूं, तो बदलाव मिनट होते हैं - अगर मैं पुरानी और नई छवियों को उड़ाता हूं और उसके बीच फ्लिक करता हूं, तो मुझे एक अंतर नहीं दिखता है! फिर भी, ImageMagick का compare
कमांड पिक्सल की एक चापलूसी को देख सकता है जो अलग हैं।
तो मेरे एमडी 5 हैश अब मेल नहीं खाते हैं। एक साधारण MD5 हैश की बजाय, मुझे image hash की आवश्यकता है।
मेरे शोध को करने के बाद, मुझे लगता है कि अधिकांश छवि हैश काफी उदार होने की कोशिश करते हैं - वे एक समान झूठी सकारात्मक मैचों के साथ आकार बदलते, परिवर्तित और वॉटरमार्क छवियों को स्वीकार करते हैं। मुझे एक छवि हैश है जो कहीं अधिक सख्त है - अनुमति में केवल बदलाव ही रंग में मिनट परिवर्तन होते हैं।
क्या कोई छवि हैश लाइब्रेरी या एल्गोरिदम की सिफारिश कर सकता है? (कोई आवेदन नहीं, जैसे dupdetector)।
याद रखें: मेरे आवश्यकताओं कि में इसी तरह के कई सवाल से अलग मैं shrinking या pHash की तरह एक उदार एल्गोरिथ्म नहीं करना चाहते हैं, और मैं structural similarity या ImageMagick's compare की तरह एक तुलना उपकरण नहीं करना चाहती।
मुझे एक हैश चाहिए जो बहुत ही समान छवियों को एक ही हैश मान देता है। क्या यह भी संभव है?
नहीं, यह संभव नहीं है। यह जानने का कोई तरीका नहीं होगा कि क्या छोड़ना है। एक छवि तुलना उपकरण विकसित करना संभव है जिसमें एक ट्यूनेबल थ्रेसहोल्ड है जिसके लिए दो छवियों को समान होना चाहिए। (यह देखने के लिए कि यह असंभव क्यों है, कल्पना करें, कहें, नाटकों के लिए एक जैसी चीज करने की कोशिश करें। उदाहरण के लिए, अगर किसी ने किसी नाटक में कुछ शब्द बदल दिए हैं। संख्या या तो प्रत्येक शब्द पर निर्भर होनी चाहिए या नहीं। आप समानता के लिए हैश की तुलना नहीं कर सकते हैं, आपको उनकी दूरी मापनी होगी।) –
दिलचस्प। सैकड़ों या हजारों संभावित मैचों की तुलना करना अक्षम है। यह कुछ हद तक चिंताजनक है। धन्यवाद। – Oddthinking
आपको सैकड़ों या हजारों संभावित मैचों की तुलना करने की आवश्यकता नहीं है। आपको केवल उन लोगों की तुलना करना है जो आम तौर पर समान होते हैं। जो लोग पूरी तरह अलग हैं वे संभवतः मेल नहीं खा सकते हैं। –