Страница: 1 |
Страница: 1 |
Вопрос: Сравнение 2-х JPGов ?
Добавлено: 21.09.05 11:33
Автор вопроса: vasty
Ребята очередной глупый вопрос ;-)
Может кто поможет исходником или контролом.
Сразу оговорюсь. Что эта фишка дожна быть именно
в моей проге. Это не для удаления дубликатов,
а для датчика движения. И может подскажете алгоритм
сравнения, я в плане "изменения чувствительности".
Спасибо!
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 21.09.05 12:55
Наложи сетку (обычно используется треугольная) и в каждый момент времени считай дисперсию от изменения интенсивности цвета в узлах сетки (обычно в датчиках движения используются черно-белые изображения, чтобы смена цвета какого-то предмета не привела к реакции системы). Если дисперсия больше какого-то подобранного методом тыка значения, посчитай, в каких узлах яркость изменилась достаточно сильно (опять-таки метод тыка) и обведи их в рамочку, можно с учетом весовых коэффициентов.
Номер ответа: 2
Автор ответа:
vasty
Вопросов: 2
Ответов: 6
Профиль | | #2
Добавлено: 21.09.05 13:00
Огромное спасибо !
Пошел изучать формат jpg'ов
Номер ответа: 3
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #3
Добавлено: 21.09.05 15:20
Нашел в закладках ссылку, не изучал:
http://www.fuzzgun.btinternet.co.uk/rodney/components.htm
Номер ответа: 4
Автор ответа:
Dron
ICQ: 331667224
Вопросов: 7
Ответов: 10
Профиль | | #4
Добавлено: 21.09.05 20:09
Вот код сравнения файлов на идентичность может подойдет
Private Sub Form_Load()
'замените пути файлов, которые вы хотите сравнить
Open "C:\Foto.jpg" For Binary As #1
Open "C:\Foto.jpg" For Binary As #2
issame% = True
If LOF(1) <> LOF(2) Then
issame% = False
Else
whole& = LOF(1) \ 10000
part& = LOF(1) Mod 10000
buffer1$ = String$(10000, 0)
buffer2$ = String$(10000, 0)
start& = 1
For X& = 1 To whole&
Get #1, start&, buffer1$
Get #2, start&, buffer2$
If buffer1$ <> buffer2$ Then
issame% = False
Exit For
End If
start& = start& + 10000
Next
buffer1$ = String$(part&, 0)
buffer2$ = String$(part&, 0)
Get #1, start&, buffer1$
Get #2, start&, buffer2$
If buffer1$ <> buffer2$ Then issame% = False
End If
Close
If issame% Then
MsgBox "Файлы идентичны", 64, "Info"
Else
MsgBox "Файлы НЕ идентичны", 16, "Info"
End If
End Sub
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 22.09.05 00:13
Dron, не это побайтное сравение, а надо графический анализ...
Номер ответа: 6
Автор ответа:
vasty
Вопросов: 2
Ответов: 6
Профиль | | #6
Добавлено: 22.09.05 10:20
Ребята ! Огромное спасибо, что откликнулись !
По поводу кода Dron'а, действительно не совсем то.
Но самое интересное, что я взял один jpg и тупо скопировал.
И как не странно, результат "Файлы НЕ идентичны".
Номер ответа: 7
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #7
Добавлено: 22.09.05 15:57
так у них инема файлов разные
Номер ответа: 8
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #8
Добавлено: 22.09.05 22:06
гы... разные...