资源描述:
《特征提取代码精选.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、特征提取代码总结颜色提取Ø颜色直方图提取:Code:#include#include#includeusingnamespacestd;intmain(intargc,char**argv){IplImage*src=cvLoadImage("E:\Download\test1.jpg",1);IplImage*hsv=cvCreateImage(cvGetSize(src),8,3);IplImage*h_plane=cvCreateImage(cvGe
2、tSize(src),8,1);IplImage*s_plane=cvCreateImage(cvGetSize(src),8,1);IplImage*v_plane=cvCreateImage(cvGetSize(src),8,1);IplImage*planes[]={h_plane,s_plane};/**H分量划分为16个等级,S分量划分为8个等级*/inth_bins=16,s_bins=8;inthist_size[]={h_bins,s_bins};/**H分量的变化范围*/floath_range
3、s[]={0,180};/**S分量的变化范围*/floats_ranges[]={0,255};float*ranges[]={h_ranges,s_ranges};/**输入图像转换到HSV颜色空间*/cvCvtColor(src,hsv,CV_BGR2HSV);cvCvtPixToPlane(hsv,h_plane,s_plane,v_plane,0);/**创建直方图,二维,每个维度上均分*/CvHistogram*hist=cvCreateHist(2,hist_size,CV_HIST_ARRAY,r
4、anges,1);/**根据H,S两个平面数据统计直方图*/cvCalcHist(planes,hist,0,0);/**获取直方图统计的最大值,用于动态显示直方图*/floatmax_value;cvGetMinMaxHistValue(hist,0,&max_value,0,0);/**设置直方图显示图像*/intheight=240;intwidth=(h_bins*s_bins*6);IplImage*hist_img=cvCreateImage(cvSize(width,height),8,3);cvZ
5、ero(hist_img);/**用来进行HSV到RGB颜色转换的临时单位图像*/IplImage*hsv_color=cvCreateImage(cvSize(1,1),8,3);IplImage*rgb_color=cvCreateImage(cvSize(1,1),8,3);intbin_w=width/(h_bins*s_bins);for(inth=0;h6、像中的高度*/floatbin_val=cvQueryHistValue_2D(hist,h,s);intintensity=cvRound(bin_val*height/max_value);/**获得当前直方图代表的颜色,转换成RGB用于绘制*/cvSet2D(hsv_color,0,0,cvScalar(h*180.f/h_bins,s*255.f/s_bins,255,0));cvCvtColor(hsv_color,rgb_color,CV_HSV2BGR);CvScalarcolor=cvGet2D(
7、rgb_color,0,0);cvRectangle(hist_img,cvPoint(i*bin_w,height),cvPoint((i+1)*bin_w,height-intensity),color,-1,8,0);}}cvNamedWindow("Source",1);cvShowImage("Source",src);cvNamedWindow("H-SHistogram",1);cvShowImage("H-SHistogram",hist_img);cvWaitKey(0);}运行效果截图:形状提
8、取ØCandy算子对边缘提取:Code:#include"cv.h"#include"cxcore.h"#include"highgui.h"intmain(intargc,char**argv){//声明IplImage指针IplImage*pImg=NULL;IplImage*pCannyImg=NULL;//载入图像,强制转化为GraypImg=cvLoadImag