2013-11-17 1 views
-1

Я не уверен, что это подходящее место для размещения такого вопроса. Но, может быть, кто-то может мне помочь.Создать видео с самостоятельных снимков

Я взял много фотографий от человека последние несколько месяцев. Изображения - это все изображения спереди, с разными молниями, один раз лицо ближе к камере, затем еще один раз и т. Д. Теперь я хочу создать фильм со всеми картинами, чтобы показать некоторый прогресс. Но прежде чем я начну вручную исправлять фотографии (исправьте молнию, сделайте все лица одинакового размера, немного поверните лица ...) и поместите их в Premiere, мне было интересно, есть ли какое-то программное обеспечение для достижения этого , Это может быть программа, скрипт, библиотека ... Я немного читал об открытии cv, но, возможно, там уже что-то есть.

+0

И я не понимаю нижний план. Любые причины? – 23tux

ответ

1

Может быть возможно с OpenCV,

Как ваше требование первым делом

регулировка освещения

OpenCV имеет всю документацию о Changing the contrast and brightness of an image. По-другому вы настраиваете контраст с histogram equalization. Для этого вам необходимо преобразовать изображение RGB в HSV и применить equalizeHist() к каналу V (значение).

OpenCV Resize

Для изменения размера можно использовать OpenCV resize функцию

Вот кусок кода, как это сделать

Mat src = imread(image.jpg); 
Mat dst; 
resize(src, dst, Size(640, 480), 0, 0, INTER_CUBIC); // resize to 640X480 resolution 

Rotation

Для вращения вы можете использовать Affine Transformations

Видео Запись

OpenCV имеет VideoWriter класс для записи видео с использованием различных частоту кадров, кодек, разрешение и т.д ..

Вот исходный код для записи видео с помощью серии изображения, предполагается, что ваш изображения с именами 0.jpg, 1.jpg, 2.jpg .....

int main() 
{ 

    VideoWriter writer; 
    writer.open("out.avi",CV_FOURCC('M','J','P','G'),15,Size(640,480),true);//Initialize video writer. The resolution should be same as source image 
    if(!writer.isOpened()){ 
    cout<<"Cannot write video..!!!"<<endl; 
    return -1; 
    } 

    char name[10]; 
    int i=0; 
    while(1){ 
    sprintf(name,"%d.jpg",i++); 
    Mat src=imread(name,CV_LOAD_IMAGE_COLOR); 
    if (src.empty()){ 
    cout<<"No source found...."<<endl; 
    break; 
    } 
    writer.write(src); 
    imshow("src", src); 
    waitKey(0); 
    } 
    return 0; 
} 
+0

круто, спасибо! Можно ли определить форму лица, и на основе этого, повернуть, масштабировать и т.д. изображения? – 23tux

+0

Я думаю, что возможно, вы можете посмотреть на эту ссылку http://docs.opencv.org/modules/contrib/doc/facerec/facerec_tutorial.html#face-recognition – Haris