我还有一个关于OpenCv的问题,就是怎么在一张图片上切出来一个已知起始点(x,y)和终止点(x+dx,y+dy)坐
题目太长截掉了,刚看到,这是补充:抱歉啊~我还有一个关于OpenCv的问题,就是怎么在一张图片上切出来一个已知起始点(x,y)和终止点(x+dx,y+dy)坐标的矩形范围...
题目太长截掉了,刚看到,这是补充:抱歉啊~
我还有一个关于OpenCv的问题,就是怎么在一张图片上切出来一个已知起始点(x,y)和终止点(x+dx,y+dy)坐标的矩形范围并保存成一张新图片呢……这个可能比较麻烦,如果你知道的话希望能指点一下,先谢谢啦!~ 展开
我还有一个关于OpenCv的问题,就是怎么在一张图片上切出来一个已知起始点(x,y)和终止点(x+dx,y+dy)坐标的矩形范围并保存成一张新图片呢……这个可能比较麻烦,如果你知道的话希望能指点一下,先谢谢啦!~ 展开
展开全部
我以前做过一个人脸的截取,当时是用的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");
}
来自:求助得到的回答
展开全部
如果已知道图像上的起点和终点区域,比较简单
创建一个IPIIMAGE指针指向的存储图像内存空间,用已知的大小,再保存就可以了
麻烦的是精确定位图像上的区域
创建一个IPIIMAGE指针指向的存储图像内存空间,用已知的大小,再保存就可以了
麻烦的是精确定位图像上的区域
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设置感兴趣区域!SetImageROI()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询