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

Поворот изображения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с двумерной матрицей (верхний предел рандома) http://www.cyberforum.ru/cpp-beginners/thread742806.html
Пользователь должен сам вводить размер матрицы с клавиатуры. Так с клавиатуры должен осуществляться ввод числа, которое будет максимальным среди случайно выпадающих. Ввод размера написать получилось в универе, дома задачу переписал - не работает. За верхний предел рандома, соответственно, я и не брался. Помогите найти ошибку в коде. Подскажите, как обозначить верхний предел #include <stdafx.h>...
C++ Символьное дифференцирование Требуется реализовать класс Expression с чисто виртуальными методами Expression *diff(); и void print(); и отнаследовать классы Number, Variable, Add, Sub, Mul, Div. Если можете, помогите, пожалуйста. Добавлено через 5 часов 6 минут Есть классы Number и Variable, а как быть с остальными, я не совсем понял. class Expression { public: virtual Expression * diff() = 0; virtual void... http://www.cyberforum.ru/cpp-beginners/thread742778.html
C++ Реализовать доступ к закрытой переменной
Можно ли в C++ получить доступ к закрытым переменным из класса Two в классе One, без изменения One? На сколько я знаю, друзей можно объявлять только в самом классе.(One) class One { private: int X; } class Two { public: private:
C++ Как перегрузить операторы >> и << для структуры чтоб работалы итераторы?
в файле двумерный массив вида 0 1 2 3 4 5 6 7 8 9 он считывает в двумерный вектор вот такой функцией if(!FileExists(FNAME_MATRIX)) { RED;cout<<"Файл "<<FNAME_MATRIX<<" не найден!\n";GRAY; exit(1); } v.clear();
C++ Перевод из string^ в char http://www.cyberforum.ru/cpp-beginners/thread742763.html
как это можно сделать? System::String^ numbron3= textBox11->Text; const char* str_ptr = numbron3.c_str(); Добавлено через 9 минут вываливается ошибка error C2228: выражение слева от ".c_str" должно представлять класс, структуру или объединение
C++ Бинарное дерево. Мне нужно нерекурсивно удалить вершину с заданным значением ключа из бинарного дерева поиска. Здравствуйте! Мне нужно нерекурсивно удалить вершину с заданным значением ключа из бинарного дерева поиска. Я набросал алгоритм удаления, только рекурсивный. Напишите пожалуйста как избавиться от рекурсии. Node* ReturnMaxLeft(Node* n) { if(!n) return NULL; Node* tmp=n; while(tmp->left) tmp=tmp->left; return tmp; подробнее

Показать сообщение отдельно
Rt777
1 / 1 / 0
Регистрация: 03.11.2010
Сообщений: 29

Поворот изображения - C++

23.12.2012, 18:52. Просмотров 2348. Ответов 1
Метки (Все метки)

Доброго времени суток. Возникла проблема при написании программы для обнаружения лица. Обнаружение проходит отлично, но если изображение перевернутое то уже не все так хорошо. Подскажите как можно улучшить программу чтобы она поворачивала изображение скажем на определенный угол раза 2-3 и производила детектирование
Вот листинг
C++
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
75
76
77
78
79
80
81
82
83
84
85
86
#include "cv.h"
#include "highgui.h"
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include <float.h>
#include <limits.h>
#include <time.h>
#include <ctype.h>
 
 
 
const char* cascade_name =
    "C:/Program Files/OpenCV/data/haarcascades/haarcascade_frontalface_alt.xml";
 
void detect_and_draw( IplImage* image );
 
int main( int argc, char** argv )
{
 
   
    IplImage *img = cvLoadImage("lena.jpg");
    detect_and_draw(img);
 
    cvWaitKey();
 
    cvReleaseImage(&img);
 
    cvDestroyWindow("result");
 
    return 0;
}
 
void detect_and_draw( IplImage* img )
{
 
    static CvMemStorage* storage = 0;
    static CvHaarClassifierCascade* cascade = 0;
    int scale = 1;
 
    IplImage* temp = cvCreateImage( cvSize(img->width/scale,img->height/scale), 8, 3 );
 
    CvPoint pt1, pt2;
    int i;
 
    cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 );
 
    if( !cascade )
    {
        fprintf( stderr, "ERROR: Could not load classifier cascade\n" );
        return;
    }
 
    storage = cvCreateMemStorage(0);
 
    cvNamedWindow( "result", 1 );
 
    cvClearMemStorage( storage );
 
    if( cascade )
    {
 
        CvSeq* faces = cvHaarDetectObjects( img, cascade, storage,
                                            1.1, 5, CV_HAAR_DO_CANNY_PRUNING,
                                            cvSize(40, 40) );
 
        for( i = 0; i < (faces ? faces->total : 0); i++ )
        {
 
            CvRect* r = (CvRect*)cvGetSeqElem( faces, i );
 
            pt1.x = r->x*scale;
            pt2.x = (r->x+r->width)*scale;
            pt1.y = r->y*scale;
            pt2.y = (r->y+r->height)*scale;
 
            cvRectangle( img, pt1, pt2, CV_RGB(255,0,0), 3, 8, 0 );
        }
    }
 
    cvShowImage( "result", img );
    cvReleaseImage( &temp );
}
Добавлено через 2 часа 21 минуту
Ну или хотя бы функцию за поворот отвечающую посоветуйте

Добавлено через 2 часа 45 минут
Спасите помогите

Добавлено через 2 часа 37 минут
вверх
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru