C语言与C++版本的opencv实现截取图像中的一部分显示

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;
}

图片:

结果:

丝丝酱~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值