Opencv 从自拍照生成视频

Opencv 从自拍照生成视频,opencv,video,image-processing,photo,face-detection,Opencv,Video,Image Processing,Photo,Face Detection,我不确定这是否是发布此类问题的正确位置。但也许有人能帮我 在过去的几个月里,我从一个人那里拍了很多照片。这些照片都是正面照片,有不同的光线,一次脸离相机近一点,然后又离相机远一点等等。现在我想用所有照片制作一部电影,展示一些进展。但在我开始手动更正照片(修复闪电、使所有面大小相同、旋转一点面…)并将其放入Premiere之前,我想知道是否有某种软件可以实现这一点。它可能是一个程序,脚本,库。。。我读了一点关于OpenCV的内容,但可能已经有了一些东西。可能有OpenCV 根据你的要求,第一件事是

我不确定这是否是发布此类问题的正确位置。但也许有人能帮我


在过去的几个月里,我从一个人那里拍了很多照片。这些照片都是正面照片,有不同的光线,一次脸离相机近一点,然后又离相机远一点等等。现在我想用所有照片制作一部电影,展示一些进展。但在我开始手动更正照片(修复闪电、使所有面大小相同、旋转一点面…)并将其放入Premiere之前,我想知道是否有某种软件可以实现这一点。它可能是一个程序,脚本,库。。。我读了一点关于OpenCV的内容,但可能已经有了一些东西。

可能有OpenCV

根据你的要求,第一件事是

照明调整

OpenCV有一个关于的完整文档。用另一种方法调整对比度。为此,您需要将RGB图像转换为HSV并应用于V(值)通道

OpenCV调整大小

要调整大小,可以使用OpenCV函数

下面是一段代码如何做到这一点

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

对于旋转,可以使用

视频写作

OpenCV拥有使用各种帧速率、编解码器、分辨率等编写视频的类

下面是使用一系列图像编写视频的源代码,假设您的图像名为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;
}
intmain()
{
录像作者;
writer.open(“out.avi”,CV_FOURCC('M','J','P','G'),15,大小(640480),true);//初始化视频编写器。分辨率应与源图像相同
如果(!writer.isOpened()){

coutcool,谢谢!是否可以检测人脸的形状,并基于此旋转、缩放等图片?我认为可能,您可以查看这些链接,但我不理解向下投票。有什么原因吗?