彩色图像批量转换为灰度图像

       最近在做haar分类器的训练,要用到大量的正负样本,在网上找了一些,有一份样本集除了它是彩色图像外还算满意,为了后期训练时间能够缩短一点,决定把它们都转换成灰度图像!

      说干就干,一幅图像的转换很简单了,但是批量转换就稍微复杂了一丢丢,在网上找了下没有现成的代码(可能这个东西太简单大家懒得写出来。。。),于是找了个类似的,参考理解修改了一下,就OK了,达到了预期的要求,搞定!


#include"stdlib.h"       
#include <highgui.h>  
#include "stdio.h"    
#include "cv.h"    
using namespace std;  
int main()  
{  
    int image_id = 0;  
    char filename[10926];  
    char filename2[10926];  
   
    IplImage *image=0,*imageresize=0;    
    sprintf(filename , "C:\\Documents and Settings\\Administrator\\桌面\\face\\face\\negdata\\%d.jpg" , image_id );  
    IplImage* src = cvLoadImage(filename);  
    cout<<"\n 开始灰度化! \n";  
  
    while(src)  
    {     
    imageresize=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1);  //创建头并分配数据   
    cvCvtColor(src, imageresize, CV_RGB2GRAY);
    sprintf(filename2 , "C:\\Documents and Settings\\Administrator\\桌面\\face\\face\\neg\\%d.jpg" , image_id );  
    cvSaveImage(filename2, imageresize);  //将处理后的图像保存放入另一个文件夹
    
    cvReleaseImage(&imageresize);    
    cvReleaseImage(&src);  //释放内存
    image_id++;  //图片序号递增
    sprintf(filename , "C:\\Documents and Settings\\Administrator\\桌面\\face\\face\\negdata\\%d.jpg" , image_id );  
    src= cvLoadImage(filename); //加载下一幅图像 
    }  
    
    cout<<"\n 灰度化完毕! \n";  
    system("PAUSE"); 
	return(0);
}  

我negdata中总共有10000+的图片(命名方式是0.jpg ,  1.jpg  ,............10000.jpg  ,....用到了ACDSee的批量重命名),大概用了一分多钟吧,全部转换完,保存在了另一个文件夹neg中。


参考代码的网址http://blog.csdn.net/kobesdu/article/details/8952412

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值