C++ 将一幅图片进行等分

应用:

欲将任意尺寸的一副图片,分别在横向和纵向上进行N等分,这里N = subImageNum。

实现函数如下:

int subImageExtract(
	const int 							subImageNum,          //等分数目
	const Mat						src,				   //原图
	vector<Mat>						&subImages)   //等分后的各子图
{	
	if(!src.data){
		cout<<"source image error! [subImageExtract()]"<<endl;
		return -1; 
	}

	subImages.clear();
	int srcHeight, srcWidth, subHeight, subWidth;
	srcHeight = src.rows;
	srcWidth  = src.cols;
	subHeight = srcHeight / subImageNum;
	subWidth  = srcWidth / subImageNum;
	
	for(int j = 0; j < subImageNum; j++)
	{
		for(int i = 0; i < subImageNum; i++)
		{
			if(j < subImageNum - 1 && i < subImageNum - 1){
				cv::Mat temImage(subHeight, subWidth, CV_8UC3, cv::Scalar(0,0,0));
				cv::Mat imageROI = src(cv::Rect(i * subWidth, j * subHeight, temImage.cols, temImage.rows));
				cv::addWeighted(te
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bicelove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值