0 / 0 / 1
Регистрация: 10.12.2013
Сообщений: 29

Поиск изображения в изображении?

27.12.2013, 01:12. Показов 7154. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Подскажите как сделать поиск изображения в изображении. Есть два изображения: большое, и маленькое. На большом надо найти маленькое. Например: чтоб на робочем столе программа знала место расположения папок? Кто нибудь сталкивался с такой проблемой?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.12.2013, 01:12
Ответы с готовыми решениями:

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

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

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

7
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
27.12.2013, 09:55
Что бы найти изображение в изображении, нужно найти изображение в изображении

А если серьезно - это же задача из разряда искусственного интеллекта и компьютерного зрения!
0
0 / 0 / 1
Регистрация: 10.12.2013
Сообщений: 29
27.12.2013, 15:02  [ТС]
От нашол код который мне нада но он очень медленный. Может ктото знает как можна его ускорить?
Код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import java.awt.image.BufferedImage;
 
 
public class Motor {
    
                  
        int[] findSubimage(BufferedImage im1, BufferedImage im2){
               int w1 = im1.getWidth(); int h1 = im1.getHeight();
               int w2 = im2.getWidth(); int h2 = im2.getHeight();
               assert(w2 <= w1 && h2 <= h1);
               // will keep track of best position found
               int bestX = 0; int bestY = 0; double lowestDiff = Double.POSITIVE_INFINITY;
               // brute-force search through whole image (slow...)
               for(int x = 0;x < w1-w2;x++){
                 for(int y = 0;y < h1-h2;y++){
                   double comp = compareImages(im1.getSubimage(x,y,w2,h2),im2);
                   if(comp < lowestDiff){
                     bestX = x; bestY = y; lowestDiff = comp;
                   }
                 }
               }
               // output similarity measure from 0 to 1, with 0 being identical
               System.out.println(lowestDiff);
               System.out.println(bestX+" "+bestY);
               // return best location
               return new int[]{bestX,bestY};
               
             }
 
             
    
    /**
     * Determines how different two identically sized regions are.
     */
    private double compareImages(BufferedImage im1, BufferedImage im2) {
        assert(im1.getHeight() == im2.getHeight() && im1.getWidth() == im2.getWidth());
       double variation = 0.0;
       for(int x = 0;x < im1.getWidth();x++){
         for(int y = 0;y < im1.getHeight();y++){
            variation += compareARGB(im1.getRGB(x,y),im2.getRGB(x,y))/Math.sqrt(3);
         }
       }
       return variation/(im1.getWidth()*im1.getHeight());
        
    }
    /**
     * Calculates the difference between two ARGB colours (BufferedImage.TYPE_INT_ARGB).
     */
    private double compareARGB(int rgb1, int rgb2) {
        double r1 = ((rgb1 >> 16) & 0xFF)/255.0; double r2 = ((rgb2 >> 16) & 0xFF)/255.0;
       double g1 = ((rgb1 >> 8) & 0xFF)/255.0;  double g2 = ((rgb2 >> 8) & 0xFF)/255.0;
       double b1 = (rgb1 & 0xFF)/255.0;         double b2 = (rgb2 & 0xFF)/255.0;
       double a1 = ((rgb1 >> 24) & 0xFF)/255.0; double a2 = ((rgb2 >> 24) & 0xFF)/255.0;
       // if there is transparency, the alpha values will make difference smaller
       return a1*a2*Math.sqrt((r1-r2)*(r1-r2) + (g1-g2)*(g1-g2) + (b1-b2)*(b1-b2));
    }
 
}
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
27.12.2013, 15:26
Цитата Сообщение от andruxai Посмотреть сообщение
От нашол код который мне нада но он очень медленный. Может ктото знает как можна его ускорить?
А расскажите словами, что этот код делает?
1
0 / 0 / 1
Регистрация: 10.12.2013
Сообщений: 29
27.12.2013, 17:19  [ТС]
Есть два изображения:
1) изображение размером 20х20 пикселей которое находиться на жостком диске.
2) изображение которое я получаю с помощью метода createScreenCapture(). У моем случае это изображение размером 1024х768 пикселей.
Во втором ищет первое.
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
27.12.2013, 17:59
Спасибо, Кэп! Я спрашивал не Вашу задачу, а что делает этот код. Как именно он эту задачу решает. Можете ограничиться методом findSubImage
0
0 / 0 / 1
Регистрация: 10.12.2013
Сообщений: 29
27.12.2013, 18:25  [ТС]
Вы спросили у больного здоровя
Мне бы самому кто нибудь обяснил что к чему. Я ведь только начинающий.
От где я его нашол http://stackoverflow.com/quest... -with-java
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
30.12.2013, 11:01
Мне совершенно неважно, где Вы его нашли. Мне важно, чтобы Вы понимали, как он работает. Иначе Вам нереально объяснить, почему именно этот метод не может работать быстрее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.12.2013, 11:01
Помогаю со студенческими работами здесь

Поиск изображения в изображении
Всем привет. Вопрос уже много раз обсуждался. Необходимо найти в скрине экрана сохраненный в файле маленький рисунок и переместить...

Поиск изображения в изображении
Привет. Допустим у меня есть изображение в битмапе, и мне нужно его найти в сделанном программой скриншоте экрана, и если его нашло вернуть...

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

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

Многократный поиск изображения в изображении
Данная программа ищет только один раз: КлиК Как сделать так, чтобы программа находила поочередно все вхождения, если их 2 и более?


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

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

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru