@kingstreet06 said in можно ли обновлять скрипт клиенту удаленно в момент работы скрипта по платной подписке в бас?:
Я щас про нейронную сеть
Модное нынче словосочетание, маркетологи постарались наславу xD
Здравствуйте,
Есть папка в которой небольшое колличество фотографий к примеру
1.png filesize=28782
2.png filesize=13987
3.png filesize=19333
4.png filesize=54987
задача удалить дубликаты в этой папке на основе анализа по самой фотографии потому как сам размер фото разный но на фото одна и таже картинка.
Возможно ли такое в BAS ?
Спасибо!
@discovery-84 said in Можно ли сравнить Фото по Фото а не по размеру файла?:
Здравствуйте,
Есть папка в которой небольшое колличество фотографий к примеру1.png filesize=28782
2.png filesize=13987
3.png filesize=19333
4.png filesize=54987задача удалить дубликаты в этой папке на основе анализа по самой фотографии потому как сам размер фото разный но на фото одна и таже картинка.
Возможно ли такое в BAS ?
Спасибо!
В BAS точно нельзя, используйте специализированные для этой задачи инструменты
Вот код на питоне которые исщет похожие картники
Там задаются 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)