C++图片批处理

      在图像处理过程中,经常要对图像进行缩放以减少数据量,加快处理速度,试过创建一个txt文件,其中存放文件列表(在dos下用dir/b 命令生成)但过程较为复杂,此处方法较为简单,但是要事先将要处理的图片按数字顺序命名,比如"1.jpg,2.jpg"等等。当然处理不仅限于图片尺度变化,还可以进行其他的常规操作,所以也是一个十分有用的简单的工程。可以批量处理图片。 

     工程目录下创建src_img文件夹和dst_img文件夹:

      src——img中存有1.jpg----10.jpg 待处理图片

      dst------img用来存放处理后的图片

#include "stdafx.h"
#include "string.h"
#include "iostream"
#include "stdio.h"
#include "opencv2/imgproc/imgproc.hpp";
#include "opencv2/highgui/highgui.hpp";

using namespace std;
using namespace cv;

#define DST_IMG_WIDTH 100        
#define DST_IMG_HEIGH 100       

void main(int argc, _TCHAR* argv[])
{
	char ascii[5],ascij[5];
	int i;
	Mat src_img ;
	string src_img_name="src_img/";//源文件所在位置
	string dst_img_name="dst_img/";//目标文件要存放的位置
	for(i=1;i<=10;i++)//文件个数
	{
		itoa(i,ascii,10);//整形数字转为字符十进制
		src_img_name+=ascii;//源文件名,
		dst_img_name+=ascii;//目标文件名,
		src_img_name+=".jpg";//+扩展名
		dst_img_name+=".jpg";//+扩展名
		src_img = imread(src_img_name,1);//读入原始图像
		Mat dst_img(DST_IMG_WIDTH,DST_IMG_HEIGH,src_img.type());//创建期望大小的空图像,类型
        resize(src_img,dst_img,dst_img.size(),0,0,INTER_LINEAR);//利用opencv中的resize()函数对图片进行缩放
		imwrite(dst_img_name,dst_img);//保存图片
		cout<<"src_img_name:"<<src_img_name<<endl;
		src_img_name="src_img/";//文件名复位。
		dst_img_name="dst_img/";//文件名复位。

	}
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值