Cum de a determina culoarea dominantă în imagine - totul despre dezvoltarea web-ului

Sortarea fotografiilor după conținut - sarcina nu este deloc trivială, iar calitatea recunoașterii conținutului joacă un rol mai important, cu care trebuie să sortați imaginea. Desigur, nu există nici un discurs despre sistemul de recunoaștere inteligentă a imaginilor, dar este destul de posibil să se obțină un instrument cu care să poată fi sortate fotografii mai mult sau mai puțin similare. De exemplu, o fotografie foto a lui Jessica Alba, care într-un fel sa amestecat cu 1000 de fotografii ale altor actrițe. Adesea, este posibil să se distingă o astfel de fotografiere de restul de setul de culori care domină fotografia, deoarece împușcăturile sunt de obicei efectuate în același peisaj și numai modelul își schimbă poziția. Această postare este dedicată acestui post.







Probabil ați văzut în imaginile Yandex căutarea după culoare. Așa cum ar fi minunat dacă ați avea ocazia să sortați fotografiile în același mod pe site-ul dvs. Web.

Ca urmare a căutărilor lungi, am găsit un script minunat pentru găsirea culorilor dominante din imagine. Site-ul phpclasses.org are o mulțime de lucruri interesante, dar, din păcate, nu puteți descărca acest script fără înregistrare. Iar această înscriere este foarte lungă și obositoare. Prin urmare, cei care sunt prea leneși pentru a convinge să-și înregistreze credințele pot descărca aici.

Lucrul cu scriptul este simplu:







Ca rezultat, scriptul afișează cele mai populare 10 culori din imagine. De fapt, totul se va face prin funcția GeneratorImageColorPalet te :: getImageColor ($ imageFile_URL, $ numColors, $ image_granularity = 5). Are 3 parametri de intrare:

$ numColors - numărul de culori la ieșire;

$ image_granularity este pasul grilei pentru statistici.

Cred că totul este absolut clar cu privire la primii doi parametri. Al treilea parametru este mai important. Afectează în mod direct viteza scenariului. Cu cât este mai mare valoarea, cu atât mai rapid va funcționa scenariul. Implicit este egal cu 5, dar în realitate culoarea nu se schimbă atât de des și este posibil să se pună un număr mai mare. Faptul este că scriptul preia pixelii imaginii cu un pas de imagine_granularitate în imagini. Aproximativ astfel:

Acest script returnează numai o matrice cu cele mai comune culori, nu este foarte convenabil pentru sortarea imaginilor, deoarece raportul cantitativ dintre culorile dominante nu este cunoscut. Prin urmare, dacă doriți ca scriptul să returneze o matrice din matricea formularului ('#fff' => 345, '# 000' => 34), înlocuiți linia

Asta e tot, matricea rezultată conține în ordinea ascendentă a culorii și numărul de puncte întâlnite cu această culoare.

Aplicarea scenariului poate fi foarte diversă. Yandex și Google au o căutare pentru imagini bazate pe culoarea dominantă. Acest script vă permite să faceți același lucru pe site-ul dvs. Desigur, căutarea în timp real este prea lentă, așa că fotografia trebuie indexată în prealabil, de exemplu atunci când se adaugă și se salvează datele din baza de date. Cred că utilizatorii dvs. vor aprecia o astfel de caracteristică convenabilă în căutarea unui site sau în sortarea imaginilor.

Cine nu înțelege foarte bine ce face acest script, îl poate atinge cu mâinile aici. Și puteți lua codul sursă aici







Articole similare

Trimiteți-le prietenilor: