cvCalcBackProject的例子

在学习 《学习opencv》的cvCalcBackProject时自己写的例子

[cpp]  view plain copy
  1. #include <iostream>  
  2. #include <cv.h>  
  3. #include <highgui.h>  
  4. #include <cxcore.h>  
  5. #include <opencv2/opencv.hpp>  
  6.   
  7. using namespace std;  
  8. int main()  
  9. {  
  10.     IplImage *src = cvLoadImage("f:\\images\\hand00.jpg");  
  11.     IplImage *hsv_src = cvCloneImage(src);  
  12.     cvCvtColor(src,hsv_src,CV_BGR2HSV);  
  13.   
  14.     IplImage *h_plane_src = cvCreateImage(cvGetSize(src),8,1);  
  15.     cvSplit(hsv_src,h_plane_src,NULL,NULL,NULL);  
  16.     cvSave("h.xml",h_plane_src);  
  17.     int dims = 1;  
  18.     int size[] = {180};  
  19.     float ranges_h[] ={0,181};  
  20.     float *ranges[] = {ranges_h};  
  21.     CvHistogram *hist_src = cvCreateHist(1,size,CV_HIST_ARRAY,ranges);  
  22.     cvCalcHist(&h_plane_src,hist_src);  
  23.   
  24.       
  25.     IplImage *dst = cvLoadImage("f:\\images\\hand1.jpg");  
  26.     IplImage *hsv_dst = cvCreateImage(cvGetSize(dst),8,3);  
  27.     cvCvtColor(dst,hsv_dst,CV_BGR2HSV);  
  28.     IplImage *h_plane_dst = cvCreateImage(cvGetSize(dst),8,1);  
  29.     cvSplit(hsv_dst,h_plane_dst,NULL,NULL,NULL);  
  30.       
  31.   
  32.     IplImage *dst_probability = cvCreateImage(cvGetSize(h_plane_dst),IPL_DEPTH_8U,1);  
  33.     cvZero(dst_probability);  
  34.     cvCalcBackProject(&h_plane_dst,dst_probability,hist_src);  
  35.     cout<<cvSum(dst_probability).val[0]<<endl;  
  36.     cvShowImage("result",dst_probability);  
  37.     cvThreshold(dst_probability,dst_probability,250,255,CV_THRESH_BINARY);  
  38.     cvShowImage("dst1",dst_probability);  
  39.     IplConvKernel *kernel = cvCreateStructuringElementEx(31,31,15,15,CV_SHAPE_RECT);  
  40.     cvMorphologyEx(dst_probability,dst_probability,NULL,kernel,CV_MOP_OPEN);  
  41.     cvShowImage("dst2",dst_probability);  
  42.     cvWaitKey();  
  43.   
  44.     cvReleaseImage(&src);  
  45.     cvReleaseImage(&hsv_src);  
  46.     cvReleaseImage(&h_plane_src);  
  47.     cvReleaseImage(&dst);  
  48.     cvReleaseImage(&hsv_dst);  
  49.     cvReleaseImage(&h_plane_dst);  
  50.     cvReleaseHist(&hist_src);  
  51.     cvDestroyAllWindows();  
  52. }  

其中hand00.jpg图片为:



第二次读入的图片可为:


输出的结果:




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值