Opencv以目标重心上下分割人的上下半身
来源:互联网 发布:安迪沃霍尔知乎 编辑:程序博客网 时间:2024/06/12 01:24
int colorclass::aoiGravityCenter(IplImage *src, CvPoint ¢er)
{
if(!src)
return -1;
double m00, m10, m01;
CvMoments moment;
cvMoments( src, &moment, 1);
m00 = cvGetSpatialMoment( &moment, 0, 0 );
if( m00 == 0)
return 1;
m10 = cvGetSpatialMoment( &moment, 1, 0 );
m01 = cvGetSpatialMoment( &moment, 0, 1 );
center.x = (int) (m10/m00);
center.y = (int) (m01/m00);
return 0;
}
void CutPicture(char * filename, IplImage* &pDest_Upper,IplImage* &pDest_Lower)
{IplImage *src = cvLoadImage(filename,1);
IplImage *src_g = cvLoadImage(filename,0);
//发现目标中心
CvPoint center;
int cc = aoiGravityCenter(src_g, center);
CvScalar wr = CV_RGB(255,0,255);
//以重心点为中心,上下分割图片。
CvSize size_1= cvSize(src->width,center.y);//区域大小
cvSetImageROI(src,cvRect(0,0,size_1.width, size_1.height));//设置源图像ROI
IplImage* pDest_1 = cvCreateImage(size_1,src->depth,src->nChannels);//创建目标图像
cvCopy(src,pDest_1); //复制图像
cvResetImageROI(pDest_1);//源图像用完后,清空ROI
pDest_Upper = pDest_1;
CvSize size_2= cvSize(src->width,src->height - center.y);//区域大小
cvSetImageROI(src,cvRect(0,center.y,size_2.width, size_2.height));//设置源图像ROI
IplImage* pDest_2 = cvCreateImage(size_2,src->depth,src->nChannels);//创建目标图像
cvCopy(src,pDest_2); //复制图像
cvResetImageROI(pDest_2);//源图像用完后,清空ROI
pDest_Lower = pDest_2;
cvReleaseImage(&src);
cvReleaseImage(&src_g);
}
0 0
- Opencv以目标重心上下分割人的上下半身
- 上下半身的动画融合技术
- unity animator动画融合时的上下半身速度分离控制
- splitcontainer 实现窗体上下分割
- 上下移动的层
- 上下浮动的世界
- 上下区间的问题
- 上下滑动的Listview
- 上下跳动的动画
- 上下滚动的文字
- 简单的上下滚动
- 上下滚动的代码
- 上下滑动的API
- div的上下居中,左右居中,左右上下都居中
- 上下滚动的图片demo 上下跑马灯效果
- 上下拉电阻的用法
- 上下拉电阻的用法
- 上下拉电阻的用法
- LVS+Keepalived DR模式实现web负载均衡高可用
- 使用量账本和累积量的区别
- window.close() doesn't work - Scripts may not close windows that were not opened by script.
- 使用FaceDetection进行人脸识别
- javascript 面向对象整理
- Opencv以目标重心上下分割人的上下半身
- PPPOE的用户空间实现
- 第十三周项目 4 数组的排序(数字冒泡排序)
- 向量点乘与叉乘
- Android核心基础——Day05_2
- 南通金蝶,KIS专业版13.0革命的到来,迈向E时代
- 一家好公司的20条铁规
- linux计划任务
- memcached初步学习