C++版本实现
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <iostream>
using namespace std;
using namespace cv;
cv::Mat img;
cv::Rect m_select;
int main()
{
img = cv::imread("F://Visual Studio 2015//ROItest01//ROItest01//01.jpg");
cv::imshow("原图", img);
m_select = Rect(174,230,111,217);
Mat ROI = img(m_select);
cv::imshow("剪裁图", ROI);
waitKey(0);
return 0;
}
C语言版本
#include "opencv2/highgui/highgui_c.h"
#include "opencv2/core/core_c.h"
#include "opencv2/core/version.hpp"
int main()
{
IplImage *res;
int subX = 0;
int subY = 0;
res = cvLoadImage("F://Visual Studio 2015//ROItest02//ROItest02//01.jpg", -1);
subX = res->width / 2;
subY = res->height / 2;
CvMat *pMat = cvCreateMatHeader(subX, subY, CV_8UC3);
CvRect rect = cvRect(174, 230, 111, 217);
cvGetSubRect(res, pMat, rect);
IplImage *pSubImg = cvCreateImageHeader(cvSize(subX, subY), 8, 1);
cvGetImage(pMat, pSubImg);
cvShowImage("所截图像", pSubImg);
cvShowImage("原图像", res);
cvWaitKey(0);
return 0;
}
图片:
结果:
丝丝酱~