Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
SpectreD
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 4
1

Поиск фрагмента изображения.

24.05.2010, 14:38. Просмотров 5476. Ответов 11
Метки нет (Все метки)

Доброго дня!
Подскажите, как найти часть картинки на изображении?
т.е. имеется фрагмент изображения, его надо найти на общей картинке.
Вроде внятно, если что уточняйте.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2010, 14:38
Ответы с готовыми решениями:

Поиск изображения в изображении
Необходимо вычислить координаты изображения Б в изображении А. Изображение А -...

Поиск изображения в изображении
имеется два изображения *.bmp. Первое(1.bmp, width==480, height==640),...

Поиск изображения на экране
Нужно сделать метод, который будет искать на экране определённое изображение....

Поиск части изображения в изображении
Здравствуйте. Имеется картинка, на ней есть некий белый прямоугольник с...

Обработка изображения (поиск совпадений)
Не подскажите есть ли в C# средства для работы с изображением в плане того что...

11
eugene0001
20 / 17 / 4
Регистрация: 07.02.2010
Сообщений: 59
24.05.2010, 15:53 2
чувак, почитай про локализацию объектов на фото и видео изображениях.
вот тут есть доклад на эту тему: http://narod.ru/disk/17313264000/V_L...niyah.avi.html
0
SpectreD
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 4
24.05.2010, 15:57  [ТС] 3
с удовольствием почитаю...
конкретно где? вернее где доступно изложено?
0
mitsky
31 / 31 / 6
Регистрация: 31.12.2009
Сообщений: 82
24.05.2010, 16:01 4
картинка есть массив пикселей. тебе нужно найти вхождение одного массива в другой... попробуй сделать простым перебором.
0
SpectreD
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 4
24.05.2010, 16:13  [ТС] 5
вот тут есть доклад на эту тему: http://narod.ru/disk/17313264000/V_L...niyah.avi.html
Эт я сутки качать буду ((

Цитата Сообщение от mitsky Посмотреть сообщение
картинка есть массив пикселей. тебе нужно найти вхождение одного массива в другой... попробуй сделать простым перебором.
Вот с этого момента по подробнее бы...
как из картинки массив получить?
0
eugene0001
20 / 17 / 4
Регистрация: 07.02.2010
Сообщений: 59
24.05.2010, 16:25 6
я видел в гугле выкладывали про локализацию, посмотри там

если серьезно, то все зависит от требований, предъявляемых к проге. если кусок который надо найти является точной копией того куска,что лежит на картинке, то можно попробовать вложение массива в массив найти.А если сдвинута яркость у них или другие фотометрические преобразования,то смотри видео,которое я прислал.

Вот так массив получается в msv.В 32 битной картинке пиксели идут в массиве как Blue,Green,Red,Alpha.Потом опять также для другого пикселя. Image - твой битмап.
C#
1
2
3
4
5
bmpData = image.LockBits(new Rectangle(x1, y1, x2, y2), System.Drawing.Imaging.ImageLockMode.ReadWrite, image.PixelFormat);
 
           msv = new byte[bmpData.Stride * bmpData.Height];
           System.Runtime.InteropServices.Marshal.Copy(bmpData.Scan0, msv, 0, msv.Length);
           image.UnlockBits(bmpData);
0
SpectreD
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 4
24.05.2010, 17:06  [ТС] 7
Спасибо, буду разбираться.
Собственно задача из тех что попроще, когда ищем точно совпадение. Цвет, форма.
0
HIMen
4265 / 1432 / 101
Регистрация: 12.04.2009
Сообщений: 2,346
24.05.2010, 22:25 8
Цитата Сообщение от eugene0001 Посмотреть сообщение
то можно попробовать вложение массива в массив найти
Не получится. Потому что, когда в маленькой картинке начинается новый ряд пикселей, в большой тоже начнется.

И побыстрее будет с таким массивом
C#
1
byte* bmparr = (byte*)(void*)bmpdata.Scan0;
0
eugene0001
20 / 17 / 4
Регистрация: 07.02.2010
Сообщений: 59
24.05.2010, 22:36 9
Цитата Сообщение от HIMen Посмотреть сообщение
Не получится. Потому что, когда в маленькой картинке начинается новый ряд пикселей, в большой тоже начнется.

И побыстрее будет с таким массивом
C#
1
byte* bmparr = (byte*)(void*)bmpdata.Scan0;
так я не вижу в чем проблема? ну переходит и не переходит)
0
HIMen
4265 / 1432 / 101
Регистрация: 12.04.2009
Сообщений: 2,346
24.05.2010, 22:38 10
Я к тому, что не просто один массив вложен в другой
0
eugene0001
20 / 17 / 4
Регистрация: 07.02.2010
Сообщений: 59
24.05.2010, 22:46 11
Цитата Сообщение от HIMen Посмотреть сообщение
Я к тому, что не просто один массив вложен в другой
А! Безусловно! Верное замечание

Добавлено через 3 минуты
HIMem> скажи,а на сколько быстрей будет работа с твоим массивом?
0
HIMen
4265 / 1432 / 101
Регистрация: 12.04.2009
Сообщений: 2,346
24.05.2010, 23:01 12
Ну во-первых, нет копирования массива, не тратится лишняя память. Во-вторых, нет проверки индексов при доступе к элементам массива, выиграваем время. В-третьих, если надо изменять картинку, то не надо копировать массив обратно.
0
24.05.2010, 23:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2010, 23:01

Поиск изображения на картинке и считывание текста
Здравствуйте. Получаю динамичную картинку игры, которая каждый раз обновляется...

Максимальная скорость фрагмента
Есть некий фрагмент программы типа: For i=0 to end1 For j=0 to end2 ...

Поиск фрагмента изображения на картинке
Доброго всем времени суток. Задача стоит следующая, есть скриншот в виде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru