导航:首页 > 图片大全 > opencv如何分别各种图片

opencv如何分别各种图片

发布时间:2023-03-11 08:00:14

1. opencv如何实现对图像分块提取颜色直方图

颜色直方图是在许多图像检索系统中被广泛采用的颜色特征。它所描述的是不同色彩在整幅图像中所占的比例,而并不关心每种色彩所处的空间位置,即无法描述图像中的对象或物体。颜色直方图特别适于描述那些难以进行自动分割的图像。

OpenCV对颜色直方图进行统计的代码如下所示,在图像检索,镜头分割等领域使用的还是比较多的。

#include<cv.h>
#include<highgui.h>
#include<iostream>
usingnamespacestd;intmain(intargc,char**argv)
{
IplImage*src=cvLoadImage("F:\test3.jpg");

IplImage*hsv=cvCreateImage(cvGetSize(src),8,3);
IplImage*h_plane=cvCreateImage(cvGetSize(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_ranges[]={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,ranges,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);
cvZero(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;h<h_bins;h++)
{
for(ints=0;s<s_bins;s++)
{
inti=h*s_bins+s;
/**获得直方图中的统计次数,计算显示在图像中的高度*/
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(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);
}
阅读全文

与opencv如何分别各种图片相关的资料

热点内容
一个人的动漫伤感图片 浏览:464
ps如何将一张图片合成到另一张 浏览:264
定位烫发型图片男 浏览:783
送别图片加文字 浏览:605
如何用ps将图片加出一块空白 浏览:252
树叶品种名称图片大全 浏览:24
斜刘海男短发发型图片 浏览:218
动漫创意图片 浏览:252
最美的微信图片大全 浏览:294
小女孩突然肚子疼图片 浏览:955
黑魔导女孩去掉衣服的图片 浏览:279
男生疯笑的图片 浏览:156
二次元明星图片大全女生 浏览:245
ps如何把图片放大模糊变清晰 浏览:101
拦截的图片如何清理 浏览:511
图片转文字有没免费的 浏览:433
长碎发直发型图片女 浏览:106
可爱棉拖鞋图片 浏览:344
好看动漫可爱女生图片 浏览:112
单身图片美女 浏览:38