加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 带椭圆的OpenCV裁剪图像

发布时间:2020-12-16 09:33:10 所属栏目:百科 来源:网络整理
导读:我有一个大小为92×112的图像(cv :: Mat)我想用椭圆环绕这个图像中的对象,然后只获得这些像素来创建另一个只包含对象的图像. 我的意思是,用椭圆裁剪原始图像. 这是可能的? 我正在尝试绘制一个椭圆,但是椭圆不会绘制完整的,具有: ellipse(escalada,Point(92
我有一个大小为92×112的图像(cv :: Mat)我想用椭圆环绕这个图像中的对象,然后只获得这些像素来创建另一个只包含对象的图像.

我的意思是,用椭圆裁剪原始图像.
这是可能的?

我正在尝试绘制一个椭圆,但是椭圆不会绘制完整的,具有:

ellipse(escalada,Point(92/2,112/2),Size(92/2*0.95,112/2*0.85),0.0,90.0,Scalar(255,0),3,8);

并使用cvSetImageROI进行一些测试以裁剪图像,但此方法仅适用于cvRect.

有些想法?

解决方法

我用这个解决了:

imagen = imread(nombre_imagen,0); //read image (grayscale)
//Use old C interface 
IplImage *res,*roi;
IplImage src(imagen);
res = cvCreateImage(Size(imagen.rows,imagen.cols),8,1);
roi = cvCreateImage(Size(imagen.rows,1);
cvZero(roi);
cvEllipse(roi,cvPoint(src.width/2,src.height/2),cvSize(src.width/2*0.85,src.height/2*0.95),360.0,CV_RGB(255,255,255),-1,0);

cvAnd(&src,&src,res,roi);
cvReleaseImage(&roi);

然后在res变量我有一个图像显示ROI椭圆形,其余为黑色.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读