Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

(शुद्ध) PHP / MySQL में समान चित्र खोजें

मेरे पास यह सटीक है पहले एक ही मुद्दा।

मैंने जो किया उसे कॉपी करने के लिए स्वतंत्र महसूस करें, और उम्मीद है कि यह आपकी मदद करेगा / आपकी समस्या का समाधान करेगा।

मैंने इसे कैसे हल किया

मेरा पहला विचार जो विफल हो गया, जैसा कि आप सोच रहे होंगे, क्या मैंने हर एक छवि के लिए तार बनाना समाप्त कर दिया है (चाहे किसी भी आकार का हो)। लेकिन मैंने जल्दी ही यह पता लगा लिया कि यह आपके डेटाबेस को बहुत तेजी से भरता है, और यह प्रभावी नहीं था।

अगला विकल्प (जो काम करता है) एक छोटी छवि थी (जैसे आपका 5px आईडिया), और मैंने ठीक वैसा ही किया, लेकिन 10px . के साथ *10px इमेजिस। जिस तरह से मैंने प्रत्येक छवि के लिए 'हैश' बनाया वह था imagecolorat() समारोह।

php.net यहां देखें।

rgb receiving प्राप्त करते समय छवि के लिए रंग, मैंने उन्हें निकटतम 50 . तक गोल किया , ताकि रंग कम विशिष्ट हों। वह नंबर (50 ) वह है जिसे आप विशिष्ट . के आधार पर बदलना चाहते हैं आप चाहते हैं कि आपकी खोजें हों।

उदाहरण के लिए:

// Pixel RGB
rgb(105, 126, 225) // Original
rgb(100, 150, 250) // After rounding numbers to nearest 50

प्रत्येक पिक्सेल पर ऐसा करने के बाद (10px *10px आपको 100 rgb() देगा वापस), मैंने फिर उन्हें एक सरणी में बदल दिया, और उन्हें डेटाबेस में base64_encode() के रूप में संग्रहीत किया और serialize()

समान छवियों की खोज करते समय, मैंने उस छवि के लिए ठीक वैसी ही प्रक्रिया की, जिसे वे अपलोड करना चाहते थे, और फिर उन सभी की तुलना करने के लिए डेटाबेस से छवि 'हैश' निकाली, और देखें कि क्या मिलान गोल था rgb है।

टिप्स

  • बड़ा वह 50 rgb . में है राउंडिंग, कम विशिष्ट आपकी खोज होगी (और इसके विपरीत)।

  • अगर आप अपने एसक्यूएल चाहते हैं अधिक विशिष्ट होने के लिए, अतिरिक्त/विशिष्ट . स्टोर करना बेहतर हो सकता है डेटाबेस में छवि के बारे में जानकारी, ताकि आप डेटाबेस में मिलने वाली खोजों को सीमित कर सकें। जैसे . यदि पक्षानुपात 4:3 है , केवल छवियों को 4:3 . के आसपास खींचें डेटाबेस से। (आदि)

  • इसे पूरी तरह से प्राप्त करना कठिन हो सकता है 5px *5px , इसलिए एक सुझाव है phpthumb . मैंने इसे वाक्य रचना के साथ प्रयोग किया:

शुभकामनाएँ दोस्त, आशा है कि मैं मदद कर सकता हूँ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql तालिका के मिलान की जाँच करें

  2. चेतावनी:mysqli_connect ():(HY000/1045):उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध (पासवर्ड का उपयोग करके:नहीं)

  3. SQL अनेक से अनेक का चयन करें

  4. Php और jquery में लोकेशन फाइंडर स्क्रिप्ट के साथ भारत का पिनकोड डेटाबेस

  5. PHP MySQL ट्रिगर - ट्रिगर करने के लिए चर कैसे पास करें?