opencv之基于颜色空间的投影追踪
来源:互联网 发布:gis软件的基本功能 编辑:程序博客网 时间:2024/04/27 18:01
直接上代码。本例程是基于直方图反向投影的颜色追踪
#include<cv.h>#include<highgui.h>#include<stdio.h>#pragma comment(lib,"cv.lib")#pragma comment(lib,"cxcore.lib")#pragma comment(lib,"cvaux.lib")#pragma comment(lib,"highgui.lib") int main(){IplImage* obj = cvLoadImage("hand.jpg",1); //待搜索的目标IplImage* obj_hsv = cvCloneImage(obj); //待搜索的目标的HSV图像cvCvtColor(obj,obj_hsv,CV_BGR2HSV);//转换到HSV空间IplImage* h_obj = cvCreateImage(cvGetSize(obj_hsv),8,1);//H通道cvSplit(obj_hsv,h_obj,0,0,0);//分离到H空间 int size = 180; //转换到HSV空间的H通道颜色范围float range[] ={0,180};float *ranges[] ={range};CvHistogram* hist = cvCreateHist(1,&size,CV_HIST_ARRAY, ranges); //创建H通道的颜色直方图cvCalcHist(&h_obj,hist); //计算颜色直方图 //加载包含目标的图像IplImage* image = cvLoadImage("hand1.jpg",1);IplImage* image_hsv = cvCloneImage(image); //待搜索的目标的HSV图像cvCvtColor(image,image_hsv,CV_BGR2HSV);//转换到HSV空间IplImage* h_image = cvCreateImage(cvGetSize(image),8,1);cvSplit(image_hsv,h_image,0,0,0);//分离到H空间IplImage* dist = cvCreateImage(cvGetSize(image),8,1);//计算反向投影 cvCalcBackProject(&h_image, dist, hist);//开运算 IplConvKernel *kernel = cvCreateStructuringElementEx(31,31,15,15,CV_SHAPE_RECT); cvMorphologyEx(dist,dist,NULL,kernel,CV_MOP_OPEN); cvSave("1.XML",dist);cvNamedWindow("result",1);cvShowImage("result",dist);cvWaitKey();//释放内存空间cvReleaseImage(&obj);cvReleaseImage(&obj_hsv);cvReleaseImage(&h_obj);cvReleaseHist(&hist);cvReleaseImage(&image);cvReleaseImage(&image_hsv);cvReleaseImage(&h_image);cvReleaseImage(&dist);cvReleaseStructuringElement(&kernel);cvDestroyWindow("result");return 0;}
如果要定位图像中的物体,可以参照下该博文:http://blog.csdn.net/fdl19881/article/details/6726438
- opencv之基于颜色空间的投影追踪
- 【OpenCV】4th-基于YCrCb颜色空间的颜色识别
- opencv之Lab颜色空间的学习
- 《python+opencv实践》一、基于颜色的物体追踪(上)
- 《python+opencv实践》一、基于颜色的物体追踪(下)
- 基于彩色直方图反向投影的CamShift追踪
- 基于opencv的BackgroundSubtractorMOG2目标追踪
- 基于opencv的BackgroundSubtractorMOG2目标追踪
- OpenCV之RGB与HSV颜色空间的转换
- opencv学习笔记之六 颜色空间的转换
- opencv学习之图像颜色空间转换
- opencv学习笔记之五 颜色空间
- OpenCV之颜色空间转换:cvtColor()函数
- opencv学习笔记(一):基于YCrCb颜色空间的肤色检测
- 基于OpenCV的车辆检测与追踪的实现
- 基于OpenCV的车辆检测与追踪的实现
- linux下基于opencv的摄像机标定与重投影
- opencv学习笔记(三十一)基于块的反向投影
- Fortran中整(实)型与字符型转换
- POJ--1661--Help Jimmy--DP
- JList的拖拽排序实现
- 工程目录文件功能说明
- c++中new和delete的使用方法
- opencv之基于颜色空间的投影追踪
- iBatis和hibernate
- 做个有“品”的程序员
- 573 - The Snail
- android:padding和android:margin的区别
- 488 - Triangle Wave
- android 中文 api (64) —— Scroller
- c++指针函数用法
- Hibernate映射解析