Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с двумерной матрицей (верхний предел рандома) http://www.cyberforum.ru/cpp-beginners/thread742806.html
Пользователь должен сам вводить размер матрицы с клавиатуры. Так с клавиатуры должен осуществляться ввод числа, которое будет максимальным среди случайно выпадающих. Ввод размера написать получилось...
C++ Символьное дифференцирование Требуется реализовать класс Expression с чисто виртуальными методами Expression *diff(); и void print(); и отнаследовать классы Number, Variable, Add, Sub, Mul, Div. Если можете, помогите,... http://www.cyberforum.ru/cpp-beginners/thread742778.html
C++ Реализовать доступ к закрытой переменной
Можно ли в C++ получить доступ к закрытым переменным из класса Two в классе One, без изменения One? На сколько я знаю, друзей можно объявлять только в самом классе.(One) class One { private:...
C++ Как перегрузить операторы >> и << для структуры чтоб работалы итераторы?
в файле двумерный массив вида 0 1 2 3 4 5 6 7 8 9 он считывает в двумерный вектор вот такой функцией if(!FileExists(FNAME_MATRIX)) { RED;cout<<"Файл "<<FNAME_MATRIX<<" не найден!\n";GRAY;...
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++ Бинарное дерево. Мне нужно нерекурсивно удалить вершину с заданным значением ключа из бинарного дерева поиска. Здравствуйте! Мне нужно нерекурсивно удалить вершину с заданным значением ключа из бинарного дерева поиска. Я набросал алгоритм удаления, только рекурсивный. Напишите пожалуйста как избавиться от... подробнее

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

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

23.12.2012, 18:52. Просмотров 2632. Ответов 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 минут
вверх
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru