Форум программистов, компьютерный форум CyberForum.ru

[OpenCV] Поиск по шаблону - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Забиндить функцию с параметрами, чтобы она хранилась в классе и вызывалась без placeholders http://www.cyberforum.ru/cpp/thread1085808.html
Значит привет всем. Суть в кратце: хочу забиндить функцию с параметрами (кол-во произвольно), чтобы она хранилась в классе, и чтобы я мог вызвать её без placeholders. Для наилучшего понимания того что я хочу, ниже следует "псевдо-код" (разумеется не рабочий):struct function_holder { auto f; function_holder( auto f ) : f(f) {} void call() { f(); }
C++ [Поток] Один вход, два выхода [Как сделать?] Речь об STL-ных потоках. Нужно делать report в файл и на консоль (а может, только на один). Если я заведу поток rep, как мне сделать, чтобы при rep << "msg"; у меня фактически получилось fs << "msg"; cin << "msg"; Спасибо. http://www.cyberforum.ru/cpp/thread1084796.html
Дедушка, а что это за костыль у тебя? C++
Есть языки программирования с очень длинной и непростой историей, у которых примерно половина их возможностей – это какие-то исторически сложившиеся сложные и ненужные костыли. К таким, например, относится и наш любимый C++. Если вы не разработчик компилятора C++, почти всегда можно найти что-то, чего вы в языке не знаете. http://habrahabr.ru/company/yandex/blog/206234/ А что это за костыли...
Как создаются языки программирования? C++
я не программист и в этом не силен, но господа программисты, у меня возник вопрос!! КАК СОЗДАЛИ ЯЗЫК ПРОГРАММИРОВАНИЯ (например си), ну в смысле вообще как!!!?? с помощью чего!!!?? как запрограммировали команды?? в то время то эвм какие были!!!! грубо говоря у меня есть компьютер, и как я могу СОЗДАТЬ язык программирования!! надеюсь мой вопрос понятен. заранее спасибо.
C++ Объясните пожалуйста зачем нужна структура класса iterator_traits. http://www.cyberforum.ru/cpp/thread1079722.html
Всем привет! Объясните пожалуйста зачем нужна структура класса iterator_traits. Ведь все тайпдефы, которые содержатся в этой структуре имеются в каждом стандартном контейнере. И код: template <class T> typename iterator_traits<T>::reference func(T iter_begin) { typename iterator_traits<T>::reference d = *iter_begin; return d; }
C++ Как объединить файлы? Допустим, я хочу сделать программу на с++, интерфейс к ней на с#. Как это осуществить? Спасибо! подробнее

Показать сообщение отдельно
raging
0 / 0 / 0
Регистрация: 31.01.2014
Сообщений: 3

[OpenCV] Поиск по шаблону - C++

31.01.2014, 15:14. Просмотров 2259. Ответов 3
Метки (Все метки)

Добрый день, имеется код с robocraft, в котором используется функция cvMatchTemplate, вопрос состоит в том, чтобы узнать нашла ли функция шаблон на данном изображении или нет.
C++ (Qt)
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include </usr/include/opencv/cv.h>
#include </usr/include/opencv/highgui.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
 
using namespace std;
 
IplImage* image = 0;
IplImage* templ = 0;
bool flag = false;
 
int main(int argc, char* argv[])
{
        // имя картинки задаётся первым параметром
        char* filename = "pic.jpg";
        // получаем картинку
        image = cvLoadImage(filename,1);
 
        printf("[i] image: %s\n", filename);
        assert( image != 0 );
 
        // шаблон
        char* filename2 = "out31.jpg";
        printf("[i] template: %s\n", filename2);
 
        templ = cvLoadImage(filename2,1);
        assert( templ != 0 );
 
       /* cvNamedWindow("origianl", CV_WINDOW_AUTOSIZE);
        cvNamedWindow("template", CV_WINDOW_AUTOSIZE);
        cvNamedWindow("Match", CV_WINDOW_AUTOSIZE);  
        cvNamedWindow("res", CV_WINDOW_AUTOSIZE); */
 
        // размер шаблона
        int width = templ->width;
        int height = templ->height;
 
        // оригинал и шаблон
       /* cvShowImage( "origianl", image);
        cvShowImage( "template", templ);*/
 
        // изображение для хранения результата сравнения
        // размер результата: если image WxH и templ wxh, то result = (W-w+1)x(H-h+1)
        IplImage *res = cvCreateImage( cvSize( (image->width-templ->width+1), (image->height-templ->height+1)), IPL_DEPTH_32F, 1 );
 
        // сравнение изображения с шаблоном
        cvMatchTemplate(image, templ, res, CV_TM_SQDIFF);
 
        // покажем что получили
        //cvShowImage( "res", res);
 
        // определение лучшее положение для сравнения
        // (поиск минимумов и максимумов на изображении)
        double    minval, maxval;
        CvPoint    minloc, maxloc;
        cvMinMaxLoc(res, &minval, &maxval, &minloc, &maxloc, 0);
        
        // нормализуем
        /*cvNormalize(res,res,1,0,CV_MINMAX);
        cvNamedWindow("res norm", CV_WINDOW_AUTOSIZE); 
        cvShowImage( "res norm", res);*/
 
        // выделим область прямоугольником
       // cvRectangle(image, cvPoint(minloc.x, minloc.y), cvPoint(minloc.x+templ->width-1, minloc.y+templ->height-1), CV_RGB(255, 0, 0), 1, 8);
 
       
        // освобождаем ресурсы
        cvReleaseImage( &image );
        cvReleaseImage( &templ );
        cvReleaseImage( &res );
        cvDestroyAllWindows(); 
        return 0;
}
Или хотя бы узнать отрабатывает функция отрисовки прямоугольника, вобщем хоть что-либо, чтобы узнать есть ли заданный шаблон на изображении
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru