图像切割实例

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <iostream>
using namespace std;
using namespace cv;
#define m_count 8
cv::Mat img;
cv::Rect m_select;
int main()
{
	img = imread("E:\\11.jpg",3);
	namedWindow("原图", WINDOW_NORMAL);
	cvResizeWindow("原图",img.cols/3 , img.rows/3);
	imshow("原图", img);
	int lens = img.rows;
	int width = img.cols;
	string m_path_name;
	string m_file_name;

	char first[3] = {0};
	char second[3] = {0};


	for (int i = 0; i < m_count; ++i)
	{
		m_file_name = "";
		m_path_name = "";
		_itoa_s(i, first, 10);
		m_path_name = "E:\\photo\\S5\\";
		for (int j = 0; j < m_count; ++j)
		{
			m_file_name = "";
			_itoa_s(j, second, 10);
			int a = j * width / m_count;
			int b = i* lens / m_count;
			//int c = (j + 1) * width / m_count;
			//int d = (i + 1) * lens / m_count;
			int c = width / m_count;
			int d =  lens / m_count;
			m_select = Rect(a,b ,c ,d );
			Mat ROI = img(m_select);
			ROI = img(m_select);
			m_file_name += first;
			m_file_name += second;
			m_path_name = "E:\\photo\\S5\\";
			m_path_name += m_file_name;
			m_path_name += ".jpg";
			imshow(m_file_name.c_str(), ROI);
			imwrite(m_path_name.c_str(), ROI);
		}
	}

	

#if 0
	m_select = Rect(0, 0, 288*1, 216*1);
	Mat ROI = img(m_select);
	ROI = img(m_select);
	imshow("剪裁图", ROI);
	imwrite("E\\:0011.jpg", ROI);


	m_select = Rect(0, 0, 288 * 2, 216 * 2);
	ROI = img(m_select);
	imshow("剪裁图1", ROI);
	imwrite("E:\\0012.jpg", ROI);
#endif

	waitKey(0);

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值