我还有一个关于OpenCv的问题,就是怎么在一张图片上切出来一个已知起始点(x,y)和终止点(x+dx,y+dy)坐

题目太长截掉了,刚看到,这是补充:抱歉啊~我还有一个关于OpenCv的问题,就是怎么在一张图片上切出来一个已知起始点(x,y)和终止点(x+dx,y+dy)坐标的矩形范围... 题目太长截掉了,刚看到,这是补充:抱歉啊~
我还有一个关于OpenCv的问题,就是怎么在一张图片上切出来一个已知起始点(x,y)和终止点(x+dx,y+dy)坐标的矩形范围并保存成一张新图片呢……这个可能比较麻烦,如果你知道的话希望能指点一下,先谢谢啦!~
展开
 我来答
落实思树者
2011-03-25 · TA获得超过990个赞
知道小有建树答主
回答量:213
采纳率:100%
帮助的人:164万
展开全部
我以前做过一个人脸的截取,当时是用的cvSetImageROI语句重设了图片的ROI,然后用cvCopy转移到目标,这种方法可以实现切图,不过中心要设置成(x+dx/2,x+dy/2)。还有个cvGetSubRect(mat,submat,mat_rect); 函数,具体没用过,应该也可以
追问
cvSetImageROI这个函数能不能小小举个例子,假如我知道起始点(x,y),终点(x+dx,y+dy),dx和dy分别是想截取的长方形的长和宽,void cvSetImageROI(IplImage* image,CvRect rect);它的第二个参数应该怎么设置啊……刚用OpenCv,新手,呵呵~~
追答
给你编个程序,慢慢体会吧!!
#include "stdafx.h"
#include "highgui.h"

void main()
{
int x=0;
int y=0;
int dx=100;
int dy=100;
IplImage* img=cvLoadImage("lena.jpg",1);
CvSize size=cvSize(dx,dy);
cvSetImageROI(img,cvRect(x,y,dx,dy));
IplImage* pDest_copy = cvCreateImage(size,img->depth,img->nChannels);
cvCopy(img,pDest_copy);
cvNamedWindow("Example1",CV_WINDOW_AUTOSIZE);
cvShowImage("Example1",pDest_copy);
cvWaitKey(0);
cvReleaseImage(&pDest_copy);
cvReleaseImage(&img);
cvDestroyWindow("Example1");
}
来自:求助得到的回答
百度网友c69af39
2011-03-25 · TA获得超过377个赞
知道小有建树答主
回答量:399
采纳率:0%
帮助的人:324万
展开全部
如果已知道图像上的起点和终点区域,比较简单
创建一个IPIIMAGE指针指向的存储图像内存空间,用已知的大小,再保存就可以了
麻烦的是精确定位图像上的区域
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ct61ct61
2011-03-25 · TA获得超过124个赞
知道答主
回答量:122
采纳率:0%
帮助的人:71.5万
展开全部
设置感兴趣区域!SetImageROI()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式