C++(opencv)读取图片序列及保存图片到指定文件夹

#include "pch.h"
#include 
#include 
#include 
#include 
using namespace cv;
using namespace std;
int main(int argc, char *argv[])
{
    int d=8;
    char ad[300]={0};
    char name;
    //从电脑摄像头读入
    VideoCapture capture(0);
    Mat edges;
    waitKey(2000);
    //循环显示每一帧
    Mat frame;
    while(1)
    {
        capture>>frame;//读取当前帧
        imshow("读取视频",frame);
 
 
        int k=waitKey(30);//延时30ms
        if(k=='e'||cvGetWindowHandle("读取视频")==nullptr)
            break;
        else if(k=='c')
        {
           sprintf_s(ad, "E:\\tb\\project\\tb2\\face_tb\\face_tb\\face_tb\\face_tb\\output_face\\%d.jpg", ++d);
           imwrite(ad, frame );
           cout<<"get "<

bool imwrite(const string& filename, InputArray img, const vector& params=vector() )

 

需要包含的头文件
stdio.h

eg
将”test 1 2”写入数组s中

#include
int main(int argc, char *avgv[])
{
    char s[40];
    sprintf(s,"%s%d%c","test",1,'2');
    //第一个参数就是指向要写入的那个字符串的指针,剩下的就和printf()一样

    printf("%s%d%c","test",1,'2');
    //对保存后的字符串输出
    printf("%s",s);
    return 0;
}

 

for (int i = 1; i <= 图片数量; i++)
{
// sprintf读入指定路径下图片序列
sprintf_s(fileName, "D:\\VS2010\\Flow1\\Flow1\\%d.bmp", i);
sprintf_s(windowName, "NO%d", i);
// 按照图像文件名读取
frame = cv::imread(fileName);
if (!frame.data)
{
std::cout << "No data!" << std::endl;
return -1;
}

// 保存图片f

imshow("图片名称", motion2color);

imwrite("你指定的文件夹\\图片名称 . 图片格式 ",motion2color);

int sprintf_s(char (&buffer)[size],const char *format, [argument] ... ); //仅存在于C++

int _tmain(int argc, _TCHAR* argv[])
{
  char fileName[50];
  char fileName1[50];

  char windowName1[50];
  char windowName2[50];
  cv::Mat src;

  for(int i=0;i!=200;i++){
	  
	  sprintf_s(fileName, "D:\\images\\src_%d.png", i);  //读取图片的路径
	  sprintf_s(fileName1, "D:\\images_del\\src_%d.png", i); //保存图片的路径
	 
	  sprintf_s(windowName1, "NO%d", i);
	  sprintf_s(windowName2, "Dst_NO%d", i);

	  src = imread(fileName, IMREAD_REDUCED_GRAYSCALE_2); //从路径中读取图片
	  Mat dst(src.size(), src.depth());
	  
	  ImgStrong(src, dst);//图像处理过后的图片为dst
	  cv::imwrite(fileName1, dst); //保存处理后的图片
  }
    waitKey(0);   //单位毫秒,0表示永远 
    return 0;
}

你可能感兴趣的:(OPENCV)