C++程序_1、图片四等分


//202204028   图片四等分  图片大小1920*1080

#include <opencv2/opencv.hpp>
#include <iostream>
#include <vector>
#include <string>
#include <fstream>


using namespace cv;
using namespace std;

void pic2pic(string);

int main()
{
	std::string pattern_jpg = "G:\\20220516\\22\\*.jpg";
	std::vector<cv::String> image_files;
	cv::glob(pattern_jpg, image_files);
	if (image_files.size() == 0)
	{
		std::cout << "No image files[jpg]" << std::endl;
		return 0;
	}

	int k = 0;

	for (unsigned int frame = 0; frame < image_files.size(); ++frame)
	{
		cout << image_files[k] << endl;

		pic2pic(image_files[k]);

		++k;
	}


	system("Pause");		//按任意键后退出
	return 0;
}

void pic2pic(string filename)
{
	

	int pos1 = string(filename).find_last_of('\\');
	string leftover = string(filename).substr(pos1 + 1);

	cv::Mat srcImg, dstImg;
	srcImg = cv::imread(filename, 1);

	int x = 0, y = 0, width = 1920, height = 1080;
	cv::Rect rect1(x, y, width, height);
	cv::rectangle(srcImg, rect1, cv::Scalar(0, 255, 0), 2);
	Mat imCrop1 = Mat(srcImg, rect1);
	//cv::imshow("crop", imCrop1);
	string Filename = "_";
	std::string Img_Name = "G:\\20220516\\33\\" + leftover + Filename + to_string(1) + ".jpg";
	cv::imwrite(Img_Name, imCrop1);

	int x1 = 1920, y1 = 0, width1 = 1920, height1 = 1080;
	cv::Rect rect2(x1, y1, width1, height1);
	cv::rectangle(srcImg, rect2, cv::Scalar(0, 255, 0), 2);
	Mat imCrop2 = Mat(srcImg, rect2);
	//cv::imshow("crop", imCrop1);
	string Filename1 = "_";
	std::string Img_Name1 = "G:\\20220516\\33\\" + leftover + Filename1 + to_string(2) + ".jpg";
	cv::imwrite(Img_Name1, imCrop2);


	int x2 = 0, y2 = 1080, width2 = 1920, height2 = 1080;
	cv::Rect rect3(x2, y2, width2, height2);
	cv::rectangle(srcImg, rect3, cv::Scalar(0, 255, 0), 2);
	Mat imCrop3 = Mat(srcImg, rect3);
	//cv::imshow("crop", imCrop1);
	string Filename2 = "_";
	std::string Img_Name2 = "G:\\20220516\\33\\" + leftover + Filename2 + to_string(3) + ".jpg";
	cv::imwrite(Img_Name2, imCrop3);

	int x3 = 1920, y3 = 1080, width3 = 1920, height3 = 1080;
	cv::Rect rect4(x3, y3, width3, height3);
	cv::rectangle(srcImg, rect4, cv::Scalar(0, 255, 0), 2);
	Mat imCrop4 = Mat(srcImg, rect4);
	//cv::imshow("crop", imCrop1);
	string Filename3 = "_";
	std::string Img_Name3 = "G:\\20220516\\33\\" + leftover + Filename3 + to_string(4) + ".jpg";
	cv::imwrite(Img_Name3, imCrop4);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值