Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Сравнение 2-х JPGов ? Добавлено: 21.09.05 11:33  

Автор вопроса:  vasty
Ребята очередной глупый вопрос ;-)

Может кто поможет исходником или контролом.
Сразу оговорюсь. Что эта фишка дожна быть именно
в моей проге. Это не для удаления дубликатов,
а для датчика движения. И может подскажете алгоритм
сравнения, я в плане "изменения чувствительности".

Спасибо!

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 21.09.05 12:55
Наложи сетку (обычно используется треугольная) и в каждый момент времени считай дисперсию от изменения интенсивности цвета в узлах сетки (обычно в датчиках движения используются черно-белые изображения, чтобы смена цвета какого-то предмета не привела к реакции системы). Если дисперсия больше какого-то подобранного методом тыка значения, посчитай, в каких узлах яркость изменилась достаточно сильно (опять-таки метод тыка) и обведи их в рамочку, можно с учетом весовых коэффициентов.

Ответить

Номер ответа: 2
Автор ответа:
 vasty



Вопросов: 2
Ответов: 6
 Профиль | | #2 Добавлено: 21.09.05 13:00
Огромное спасибо !

Пошел изучать формат jpg'ов ;-)

Ответить

Номер ответа: 3
Автор ответа:
 Sur



ICQ: 1249088 

Вопросов: 10
Ответов: 304
 Web-сайт: sur.hotbox.ru/
 Профиль | | #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-сайт: xury.zx6.ru
 Профиль | | #7
Добавлено: 22.09.05 15:57
так у них инема файлов разные :)

Ответить

Номер ответа: 8
Автор ответа:
 Barsik



Разработчик Offline Client

ICQ: 343368641 

Вопросов: 17
Ответов: 686
 Web-сайт: barsik.newmail.ru
 Профиль | | #8
Добавлено: 22.09.05 22:06
гы... разные... :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам