opencv 批量处理图像

 为了批量处理图像,网上找了好久,基本上都是C语言的sprinrf() 和 sprinrf_s()的方法;参数输入 只能是 char* 类型; 我下面献上C++的简洁方法。

 

#include
#include
#include
#include

using namespace cv;
using namespace std;

int main()
{
  Mat srcImage;
  Mat dstImage;
  Mat hsvImage;

  string fileName;

  char* filePath = "E:\\素材\\海外卡口四车道\\雷达4车道录像_晚上\\201603152002\\dir.txt";
  char* dir = "E:\\素材\\海外卡口四车道\\雷达4车道录像_晚上\\201603152002\\";

  ifstream inFile(filePath);
  if (!inFile.is_open())
  {
    cerr<<"Failed open file"<     return -1;
  }

  Size sz;
  double scale = 0.25;

  while (getline(inFile, fileName))  //按行读取文件名
  {
    cout<     cout<
    string str = dir + fileName; //连接文件路径与文件名;

    cout<

    srcImage = imread(str,1);  //读入图像
    if (!srcImage.data)
    {
      cout<<"Image is filed"<       return -1;
    }
   sz.width = (int)(srcImage.cols * 0.25);
   sz.height = (int)(srcImage.rows * 0.25);

   dstImage.create(sz, srcImage.type());
   resize(srcImage, dstImage, sz);
   namedWindow(fileName,1);
   imshow(fileName,dstImage);
   moveWindow(fileName, srcImage.cols, 0);

   hsvImage.create(sz,dstImage.type());
   cvtColor(dstImage,hsvImage,CV_BGR2Lab);//RGB转换到Lab颜色空间
   imshow("hsv",hsvImage);

   waitKey(0);

   destroyWindow(fileName);
}


inFile.close();
return 0;
}

 

转载于:https://www.cnblogs.com/zhugl/p/5327453.html

你可能感兴趣的:(opencv 批量处理图像)