मुझे एक (अधिमानतः सरल और तेज़) छवि हैशिंग एल्गोरिदम चाहिए। हैश वैल्यू को लुकअप टेबल में इस्तेमाल किया जाता है, न कि क्रिप्टोग्राफी के लिए।फास्ट एंड सरल छवि हैशिंग एल्गोरिदम
कुछ छवियां "कंप्यूटर ग्राफ़िक" हैं - यानी ठोस रंग भरने वाले रेक्ट, रास्टरराइज्ड ग्रंथ आदि। जबकि "फोटोग्राफिक" छवियां भी हैं - जिनमें समृद्ध रंग स्पेक्ट्रम होता है, जो उचित शोर आयाम के साथ अधिक चिकनी होता है।
मैं भी हैशिंग एल्गोरिदम को विशिष्ट छवि भागों पर लागू करने में सक्षम होना चाहूंगा। मेरा मतलब है, छवि को ग्रिड कोशिकाओं में विभाजित किया जा सकता है, और प्रत्येक सेल का हैश फ़ंक्शन केवल इस सेल की सामग्री पर निर्भर होना चाहिए। ताकि अगर दो छवियों में आम क्षेत्र हों (यदि वे उचित रूप से गठबंधन होते हैं) तो कोई भी जल्दी से स्थानांतरित हो सकता है।
नोट: मैं केवल यह जानना चाहते हैं दो छवियों (या उनके भागों) समान हैं की जरूरत है। यही है, मुझे समान छवियों से मेल खाने की आवश्यकता नहीं है, फीचर मान्यता, सहसंबंध, और अन्य डीएसपी तकनीकों में कोई आवश्यकता नहीं है।
मुझे आश्चर्य है कि पसंदीदा हैशिंग एल्गोरिदम क्या है।
"फोटोग्राफिक" छवियों के लिए सिर्फ ग्रिड सेल के भीतर सभी पिक्सेल एक्सओआर-आईएनजी कम या कम है। विभिन्न छवियों के लिए एक ही हैश मान की संभावना बहुत कम है, खासकर क्योंकि (लगभग सफेद) शोर की उपस्थिति सभी संभावित समरूपता को तोड़ देती है। इसके अलावा इस तरह के हैश फ़ंक्शन का स्पेक्ट्रम अच्छा दिखता है (लगभग समान संभावना के साथ कोई भी मूल्य संभव है)।
लेकिन इस तरह के एक बेवकूफ एल्गोरिदम का उपयोग "कृत्रिम" ग्राफिक्स के साथ नहीं किया जा सकता है। समान पिक्सल, पैटर्न दोहराते हुए, ज्यामितीय ऑफ़सेट आविष्कार ऐसी छवियों के लिए बहुत आम हैं। सभी पिक्सल XOR-ing किसी भी छवि के लिए 0 समान पिक्सेल की संख्या के साथ 0 देगा।
सीआरटी -32 जैसे कुछ का उपयोग कुछ हद तक आशाजनक दिखता है, लेकिन मैं कुछ तेज़ी से समझना चाहता हूं। मैं पुनरावृत्ति सूत्र के बारे में सोचा, प्रत्येक नए पिक्सेल वर्तमान हैश मान mutates, इस तरह:,
hashValue = (hashValue * /*something*/ | newPixelValue) % /* huge prime */
सापेक्ष अभाज्य संख्या कर शायद एक अच्छा फैलाव देना चाहिए ताकि मैं इस विकल्प की ओर झुकाव रहा हूँ। लेकिन मैं जानना चाहता हूं कि बेहतर विक्रेता हैं या नहीं।
अग्रिम धन्यवाद।
आप एमडी 5 जैसे कुछ सादा हैशिंग एल्गोरिदम का उपयोग क्यों नहीं करते? –
@ करोल होर्वथ: अच्छा सवाल। दरअसल यह वही है जो मुझे कम या ज्यादा चाहिए। हालांकि एमडी 5 (अनुमानतः) सीपीयू-भूखा है, इसे एक तरफा हैश फ़ंक्शन होने के लिए डिज़ाइन किया गया है। ओटीओएच मुझे कुछ आसान चाहिए, क्योंकि मेरे पास कोई सुरक्षा विचार नहीं है। हालांकि मैं सीआरसी -32 के बारे में। लेकिन मैं कुछ भी आसान समझना चाहता हूं – valdo
यदि आप इसे बहुत सारी छवियों पर करते हैं, तो बाधा आपकी डिस्क की गति होगी .. –