批量处理一个文件夹里面的所有图片转换为灰度图片

来源:互联网 发布:mac cd命令进入文件夹 编辑:程序博客网 时间:2024/06/07 20:42

http://www.cfanz.cn/?a=read&c=article&id=260521

找了很久,很多文章的函数都还是之前版本的,所以总调试不成功,看了这篇文章才调通,以下就是我调用的函数

#include"stdafx.h"
#include <iostream>
#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/imgproc/imgproc.hpp>  
using namespace cv; 
using namespace std;  
int main() { 
Mat colorImage;
char colorImageSrc[100] = "C:\\Users\\user\\Desktop\\pos\\1.png";     //第一张图片的位置
int i = 1;
char *dest = "C:\\Users\\user\\Desktop\\pos\\%d.png";                          // %d应该是之后代替i的位置吧
while(colorImageSrc)//直到显示完所有图片 
{  
colorImage = imread(colorImageSrc,1); 
if(!colorImage.data) 

cout<<"error"<<endl; return -1;
}
imshow("colorImage",colorImage); 
Mat im1;
cvtColor(colorImage,im1,CV_BGR2GRAY);                                          //转换为灰度图片的函数
imwrite (colorImageSrc,im1);                                                                   //替换原先的彩色图片
///////////////////////////////////////////// ///使用sprintf函数 ///////////////////////////////////////////// 
sprintf_s(colorImageSrc,dest,i); 
cout<<colorImageSrc<<endl;                                                               //这句可以去掉的
i++; //此处需要waiKey() 
waitKey(10);                                                                                                  //这里的时间有时处理会出现图片没处理 就跳过去了

waitKey();
system("pause");
return 0; 
}

0 0
原创粉丝点击