#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;
}
图像切割实例
最新推荐文章于 2023-11-09 17:52:27 发布