導航:首頁 > 圖片大全 > 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如何分別各種圖片相關的資料

熱點內容
word中怎麼把一張圖片分成幾頁 瀏覽:939
女孩戴著耳機的圖片 瀏覽:377
女人直發發型圖片大全 瀏覽:152
不願去解釋文字圖片 瀏覽:540
霸氣圖片動漫女生頭像帶字 瀏覽:264
qq動漫頭像男生高清頭像圖片素材 瀏覽:993
螞蚱燙發型圖片男生帥氣 瀏覽:787
簡單的jq圖片插件 瀏覽:867
當代男生宿舍圖片大全 瀏覽:594
圖片文字背景色 瀏覽:529
怎麼才會懷孕圖片 瀏覽:174
安卓手機怎麼保存圖片 瀏覽:441
木床上下鋪價格及圖片 瀏覽:966
動漫少女可愛圖片長圖 瀏覽:292
動漫女僕衣服圖片 瀏覽:24
霸氣簡單的背景圖片 瀏覽:464
word圖片調整透明度 瀏覽:784
怎麼把圖片歸類 瀏覽:560
男生愛心眼卡通圖片 瀏覽:646
別說話文字圖片 瀏覽:185