opencv下指定文件夹下的图片灰度化(图片的读取与保存)-------简单记录
对于此功能其实很简单:主要是在c++方面的字母+数字的拼接问题存在一定的问题。C++数字字母拼接问题:
1 #include <fstream> 2 #include <string> 3 #include <iostream> 4 #include "highgui.h" 5 #include <cv.h> 6 #include <cvaux.h> 7 using namespace std; 8 using namespace cv; 9 10 int main(){ 11 char buffer [50]; 12 char buffer1 [50]; 13 14 for(int i=16;i<35;i++){ 15 //将数字字母拼接在一起得到读取文件的路径 16 sprintf (buffer, "C:\\Users\\Acer\\Desktop\\新建文件夹\\%d.jpg", i); 17 18 //从指定路径buffer中读取图片 19 IplImage * img = cvLoadImage( buffer); 20 21 //拼接灰度图存储路径 22 sprintf (buffer1, "pos\\%d.jpg", i); 23 24 if(!img) 25 { 26 //fprintf(stderr, "Can not load image %s\n", imagename); 27 return -1; 28 } 29 30 // 检查是否正确载入图像 31 if( !img->imageData ) 32 return -1; 33 34 //创建目标图像 35 IplImage* img1 = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1); 36 37 //图像灰度化 38 cvCvtColor(img,img1,CV_BGR2GRAY); 39 40 //保存灰度图像到指定路径 41 cvSaveImage(buffer1, img1, 0); 42 } 43 44 cvWaitKey(); 45 return 0; 46 47 }