opencv 批量处理图像
Posted LinuxC++计算机视觉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv 批量处理图像相关的知识,希望对你有一定的参考价值。
为了批量处理图像,网上找了好久,基本上都是C语言的sprinrf() 和 sprinrf_s()的方法;参数输入 只能是 char* 类型; 我下面献上C++的简洁方法。
#include <opencv2/opencv.hpp>
#include <iostream>
#include <fstream>
#include <string>
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"<<endl;
return -1;
}
Size sz;
double scale = 0.25;
while (getline(inFile, fileName)) //按行读取文件名
{
cout<<dir<<endl;
cout<<fileName<<endl;
string str = dir + fileName; //连接文件路径与文件名;
cout<<str<<endl;
srcImage = imread(str,1); //读入图像
if (!srcImage.data)
{
cout<<"Image is filed"<<endl;
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;
}
以上是关于opencv 批量处理图像的主要内容,如果未能解决你的问题,请参考以下文章
OpenCV-Python实战 —— OpenCV 实现批量将 bmppngjpg格式图片转换为 png 格式图片