Вот код на питоне которые исщет похожие картники
Там задаются 4 картинки вычисляется их хеш и потом исщется та которая наиболее похожа другую
может его можно как то адаптрировать под javascript
если питон не знаешь учи
вообще то принцип такой картика уменьшается в размере переводится в черно белую и потом вычисляется ее хеш который потом сравнивается с другими такими же похожими картиками.
Еще можно заморачаться и написать нейросеть которая будет определять что у тебя там на картники или на что это вообще похоже но в этом я не силен.
import cv2
#Функция вычисления хэша
def CalcImageHash(FileName):
image = cv2.imread(FileName) #Прочитаем картинку
resized = cv2.resize(image, (8,8), interpolation = cv2.INTER_AREA) #Уменьшим картинку
gray_image = cv2.cvtColor(resized, cv2.COLOR_BGR2GRAY) #Переведем в черно-белый формат
avg=gray_image.mean() #Среднее значение пикселя
ret, threshold_image = cv2.threshold(gray_image, avg, 255, 0) #Бинаризация по порогу
#Рассчитаем хэш
_hash=""
for x in range(8):
for y in range(8):
val=threshold_image[x,y]
if val==255:
_hash=_hash+"1"
else:
_hash=_hash+"0"
return _hash
def CompareHash(hash1,hash2):
l=len(hash1)
i=0
count=0
while i<l:
if hash1[i]!=hash2[i]:
count=count+1
i=i+1
return count
hash1=CalcImageHash("1.png")
hash2=CalcImageHash("2.png")
hash3=CalcImageHash("3.png")
hash4=CalcImageHash("4.png")
print(hash1)
print(hash2)
print(hash3)
print(hash4)
print(CompareHash(hash1, hash2))
print(CompareHash(hash1, hash3))
print(CompareHash(hash1, hash4))
print(CompareHash(hash2, hash3))
print(CompareHash(hash2, hash4))
print(CompareHash(hash3, hash4))
minHash = CompareHash(hash1, hash2)
img = 1
if(CompareHash(hash1, hash3) < minHash):
minHash = CompareHash(hash1, hash3)
if(CompareHash(hash1, hash4) < minHash):
minHash = CompareHash(hash1, hash4)
if(CompareHash(hash2, hash3) < minHash):
minHash = CompareHash(hash2, hash3)
img = 2
if(CompareHash(hash2, hash4) < minHash):
minHash = CompareHash(hash2, hash4)
img = 2
if(CompareHash(hash3, hash4) < minHash):
minHash = CompareHash(hash3, hash4)
img = 3
print(img, minHash)