分類處理方法和裝置制造方法
【專利摘要】本發明提供一種分類處理方法和裝置,該方法包括:獲取待分類的圖片文件中每個像素的色彩、亮度和飽和度HSV色彩空間的數值;根據該每個像素的HSV色彩空間的數值,獲取該待分類的圖片文件的待分類的直方圖數組,并根據該待分類的直方圖數組,獲取該待分類的圖片的待分類的閾值;根據該待分類的閾值,對該待分類的圖片進行分類處理。
【專利說明】分類處理方法和裝置
【技術領域】
[0001]本發明涉及計算機技術,尤其涉及一種分類處理方法和裝置。
【背景技術】
[0002]隨著互聯網的發展,圖片在傳遞網絡信息當中扮演著越來越重要的作用。人們對如何將爆炸性增長的圖片分類提出了更高的要求。目前,圖片的分類方法主要是根據紅綠藍(Red Green Blue ;簡稱:RGB)色彩空間來進行分類的,即通過圖片的色彩和色彩的位置,來對該圖片進行分類。
[0003]但是,由于RGB色彩空間是采用紅、綠、藍三種色調的疊加,因此,無法直觀地反映出光譜的變化,從而對于人的感知器官而言,采用RGB色彩空間進行圖片分類,會造成圖片的分類的產生偏差,進而造成圖片的分類不精確。
【發明內容】
[0004]本發明提供一種分類處理方法和裝置,用于有效地保證圖片文件分類的精確性。
[0005]本發明的第一個方面是提供一種分類處理方法,包括:
[0006]獲取待分類的圖片文件中每個像素的色彩、亮度和飽和度HSV色彩空間的數值;
[0007]根據所述每個像素的HSV色彩空間的數值,獲取所述待分類的圖片文件的待分類的直方圖數組,并根據所述待分類的直方圖數組,獲取所述待分類的圖片的待分類的閾值;
[0008]根據所述待分類的閾值,對所述待分類的圖片進行分類處理。
[0009]本發明的另一個方面是提供一種分類處理裝置,包括:
[0010]色彩、亮度和飽和度HSV色彩空間的數值獲取模塊,用于獲取待分類的圖片文件中每個像素的HSV色彩空間的數值;
[0011]直方圖數組獲取模塊,用于根據所述每個像素的HSV色彩空間的數值,獲取所述待分類的圖片文件的待分類的直方圖數組;
[0012]閾值獲取模塊,用于根據所述待分類的直方圖數組,獲取所述待分類的圖片的待分類的閾值;
[0013]分類處理模塊,用于根據所述待分類的閾值,對所述待分類的圖片進行分類處理。
[0014]本發明的技術效果是:通過獲取待分類的圖片文件中每個像素的HSV色彩空間的數值,并根據每個像素的HSV色彩空間的數值,獲取該待分類的圖片文件的待分類的直方圖數組,根據該待分類的直方圖數組,獲取該待分類的圖片的待分類的閾值,根據該待分類的閾值,對該待分類的圖片進行分類處理,由于根據待分類的圖片文件中每個像素的HSV色彩空間的數值來進行圖片文件的分類,因此,有效地保證圖片文件分類的精確性。
【專利附圖】
【附圖說明】
[0015]圖1為本發明分類處理方法的一個實施例的流程示意圖;
[0016]圖2為本發明分類處理方法的另一個實施例的流程圖;
[0017]圖3為本發明分類處理方法的又一個實施例的流程圖;
[0018]圖4為本發明分類處理方法的再一個實施例的流程圖;
[0019]圖5為本發明分類處理裝置的一個實施例的結構示意圖。
【具體實施方式】
[0020]圖1為本發明分類處理方法的一個實施例的流程示意圖,如圖1所示,本實施例的方法包括:
[0021]步驟101、獲取待分類的圖片文件中每個像素的色彩、亮度和飽和度(HueSaturat1n Value ;簡稱:HSV)色彩空間的數值。
[0022]步驟102、根據該每個像素的HSV色彩空間的數值,獲取該待分類的圖片文件的待分類的直方圖數組,并根據該待分類的直方圖數組,獲取該待分類的圖片的待分類的閾值。
[0023]步驟103、根據該待分類的閾值,對該待分類的圖片進行分類處理。
[0024]在本實施例中,獲取待分類的圖片文件中每個像素的HSV色彩空間的數值,并根據每個像素的HSV色彩空間的數值,獲取該待分類的圖片文件的待分類的直方圖數組,根據該待分類的直方圖數組,獲取該待分類的圖片的待分類的閾值,根據該待分類的閾值,對該待分類的圖片進行分類處理,由于根據待分類的圖片文件中每個像素的HSV色彩空間的數值來進行圖片文件的分類,因此,有效地保證圖片文件分類的精確性。
[0025]圖2為本發明分類處理方法的另一個實施例的流程圖,在上述圖1所示的實施例的基礎上,如圖2所示,步驟101的一種具體實現方式為:
[0026]步驟101a、獲取該待分類的圖片文件的圖片格式,并根據該圖片格式,獲取該待分類的圖片文件中每個像素的RGB數值。
[0027]步驟101b、分別將該待分類的圖片文件中每個像素的RGB數值轉換成HSV色彩空間的數值。
[0028]具體的,在本實施例中,可以通過Java語言實現本發明實施例中提供的步驟101中分別將該待分類的圖片文件中每個像素的RGB數值轉換成HSV色彩空間的數值的方法,其實現方式示例如下:
[0029]“public RGBToHSV(RGB rgb){
[0030]H=new int[rgb.getR0.length];
[0031]S=new int [rgb.getR ().length];
[0032]V=new int [rgb.getR ().length];
[0033]for (int i=0; i<rgb.getR ().length; i++) {
[0034]float max= (float) Math, max (Math, max (rgb.getR () [i], rgb.getG () [i]), rgb.getB() [i]);
[0035]float min= (float) Math, min (Math, min (rgb.getR () [i], rgb.getG () [i]), rgb.getB() [i]);
[0036]if (max==min) {
[0037]H[i]=0;
[0038]}else{
[0039]if (max==rgb.getR() [i]) {
[0040]H[i] = (int) (((rgb.getG() [i]-rgb.getB() [i])/(max-min)+6)*60);
[0041]}else if (max==rgb.getG() [i]) {
[0042]H[i] = (int) (((rgb.getB() [i]-rgb.getR() [i])/(max-min) +2)*60);
[0043]}else{
[0044]H[i] = (int) (((rgb.getR() [i]-rgb.getG() [i])/(max-min) +4)*60);
[0045]}
[0046]if (H[i]>360) {
[0047]H[i]-=360;
[0048]}
[0049]if (H[i]<0) {
[0050]H [i]+=360;
[0051]}
[0052]}
[0053]if (max==0) {
[0054]S[i]=0;
[0055]}else{
[0056]S[i]=(int)((max-min)/max*100);
[0057]}
[0058]V[i] = (int) (max/255*100);
[0059]}
[0060]} ”
[0061]可選地,步驟102的一種具體實現方式為:
[0062]步驟102a、依次根據該每個像素的HSV色彩空間的數值,獲取預先配置的直方圖數組中,與該每個像素中的HSV色彩空間的數值對應的色彩域,并將對應的色彩域的值加1,以獲取該待分類的圖片文件的待分類的直方圖數組。
[0063]步驟102b、根據該待分類的直方圖數組,獲取該待分類的圖片的待分類的閾值。
[0064]在本實施例中,預先配置的直方圖數組代表不同的色彩域,不同色彩域代表了 HSV色彩空間的一個取值范圍。可選地,預先配置的直方圖數組的構建方式為:可以將HSV色彩空間中的H、S和V三個維度分別分為8、4和4個空間,則說明代表了 128 (8*4*4)個色彩域,其中,數組的下標I與H、S和V三個維度的區間對應關系為:I=32S+4I+V,則根據上述參數,可以采用均等分割方式構建所述預先配置的直方圖數組,具體可以采用如下方式:
[0065]“public int [] getl28Bins () {
[0066]int[]bins=new int[128];
[0067]for (int i=0; i<H.length; i++) {
[0068]int pos=0;
[0069]if (S[i]<=25) {
[0070]}else if (S[i]>25&&S[i]<=50) {
[0071]pos=32;
[0072]}else if (S[i]>50&&S[i]〈=75) {
[0073]pos=64;
[0074]}else{
[0075]pos=96;
[0076]}
[0077]if (H[i]<=45) {
[0078]}else if (H[i]>45&&H[i]〈=90) {
[0079]pos+=4;
[0080]}else if (H[i]>90&&H[i]〈=135) {
[0081]pos+=4*2;
[0082]}else if (H[i]>135&&H[i]〈=180) {
[0083]pos+=4*3;
[0084]}else if (H[i]>180&&H[i]〈=225) {
[0085]pos+=4*4;
[0086]}else if (H[i]>225&&H[i]〈=270) {
[0087]pos+=4*5;
[0088]}else if (H[i]>270&&H[i]〈=315) {
[0089]pos+=4*6;
[0090]}else{
[0091]pos+=4*7;
[0092]}
[0093]if (V[i]<=25) {
[0094]}else if (V[i]>25&&V[i]<=50) {
[0095]pos+=l;
[0096]}else if (V[i]>50&&V[i]<=75) {
[0097]pos+=2;
[0098]}else{
[0099]pos+=3;
[0100]}
[0101]bins[pos]++;
[0102]}
[0103]return bins;
[0104]}”
[0105]還需要說明的是,上述預先配置的直方圖數組的構建是采用均等分割方式,但本發明并不限于該方式,為了進一步提高色彩域的實用性,提高分類的精度,還可以對以上數組的大小、取值范圍進行調整,并可以進一步采用不均等分割的方式構建預先配置的直方圖數組。
[0106]更為可選地,步驟102b的一種具體實現方式為:根據該待分類的直方圖數組,采用直方圖相交法、距離法、中心距法、參考顏色表法或者累加顏色直方圖法,獲取該待分類的圖片的待分類的閾值。
[0107]在本實施例中,可以通過Java語言實現本發明實施例中提供的步驟102b中獲取待分類的閾值的方法,其實現方式示例如下:
[0108]“public int getDistances(int[]query_bins, int[]refer_bins, int mode){
[0109]double distance=0;
[0110]int bin_length=refer_bins.length;
[0111]int []bins=query_bins;
[0112]//直方圖相交法
[0113]if (mode==0) {
[0114]for (int i=0;i〈bin_length;i++){
[0115]distance+=Math.abs(refer_bins[i]-bins[i]);
[0116]}
[0117]//距離法
[0118]}else if (mode==l) {
[0119]for (int i=0;i〈bin_length;i++){
[0120]distance+=Math.pow(refer_bins[i]-bins[i],2);
[0121]}
[0122]distance=(int)Math, sqrt((double)distance);
[0123]}
[0124]return (int)distance;
[0125]},,
[0126]圖3為本發明分類處理方法的又一個實施例的流程圖,在上述圖2所示的實施例的基礎上,如圖3所示,步驟103的一種具體實現方式為:
[0127]步驟103a、將該待分類的閾值依次與預先配置的N個參考圖片對應的參考閾值相比較,若該待分類的閾值大于第M個參考圖片的參考閾值,則將該待分類的圖片文件歸類為該第M個參考圖片所屬的類別。
[0128]其中,N和M為正整數,且M小于或等于N。
[0129]圖4為本發明分類處理方法的再一個實施例的流程圖,在上述圖2所示的實施例的基礎上,如圖4所示,步驟102之后,該方法還可以進一步包括:
[0130]步驟104、將獲取的該待分類的圖片文件的待分類的直方圖數組存儲在數據庫中。
[0131]則步驟103的另一種具體實現方式為:
[0132]步驟103b、將該待分類的閾值依次與該數據庫中存儲的N組直方圖數組中的一個直方圖數據對應的分類閾值相比較,若該待分類的閾值與第M組直方圖數組中的一個直方圖數組對應的分類閾值相差小于預設閾值,則將該待分類的圖片文件歸類為該第M組直方圖數組中的一個直方圖數組所屬的類別。
[0133]其中,N和M為正整數,且M小于或等于N。
[0134]本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0135]圖5為本發明分類處理裝置的一個實施例的結構示意圖,如圖5所示,該裝置包括:HSV色彩空間的數值獲取模塊11、直方圖數組獲取模塊12、閾值獲取模塊13和分類處理模塊14 ;其中,HSV色彩空間的數值獲取模塊11用于獲取待分類的圖片文件中每個像素的HSV色彩空間的數值;直方圖數組獲取模塊12用于根據該每個像素的HSV色彩空間的數值,獲取該待分類的圖片文件的待分類的直方圖數組;閾值獲取模塊13用于根據該待分類的直方圖數組,獲取該待分類的圖片的待分類的閾值;分類處理模塊14用于根據該待分類的閾值,對該待分類的圖片進行分類處理。
[0136]本實施例的分類處理裝置可以執行圖1所示方法實施例的技術方案,其實現原理相類似,此處不再贅述。
[0137]在本實施例中,獲取待分類的圖片文件中每個像素的HSV色彩空間的數值,并根據每個像素的HSV色彩空間的數值,獲取該待分類的圖片文件的待分類的直方圖數組,根據該待分類的直方圖數組,獲取該待分類的圖片的待分類的閾值,根據該待分類的閾值,對該待分類的圖片進行分類處理,由于根據待分類的圖片文件中每個像素的HSV色彩空間的數值來進行圖片文件的分類,因此,有效地保證圖片文件分類的精確性。
[0138]進一步的,在本發明的另一個實施例中,在上述圖5所示實施例的基礎上,HSV色彩空間的數值獲取模塊11具體用于獲取該待分類的圖片文件的圖片格式,并根據該圖片格式,獲取該待分類的圖片文件中每個像素的紅綠藍RGB數值;分別將該待分類的圖片文件中每個像素的RGB數值轉換成HSV色彩空間的數值。
[0139]可選地,直方圖數組獲取模塊12具體用于依次根據該每個像素的HSV色彩空間的數值,獲取預先配置的直方圖數組中,與該每個像素中的HSV色彩空間的數值對應的色彩域,并將對應的色彩域的值加1,以獲取該待分類的圖片文件的待分類的直方圖數組。
[0140]更為可選地,分類處理模塊14具體用于將該待分類的閾值依次與預先配置的N個參考圖片對應的參考閾值相比較,若該待分類的閾值大于第M個參考圖片的參考閾值,則將該待分類的圖片文件歸類為該第M個參考圖片所屬的類別;
[0141]其中,N和M為正整數,且M小于或等于N。
[0142]或者,直方圖數組獲取模塊12還用于將獲取的該待分類的圖片文件的待分類的直方圖數組存儲在數據庫中;
[0143]則該分類處理模塊14具體用于將該待分類的閾值依次與該數據庫中存儲的N組直方圖數組中的一個直方圖數據對應的分類閾值相比較,若該待分類的閾值與第M組直方圖數組中的一個直方圖數組對應的分類閾值相差小于預設閾值,則將該待分類的圖片文件歸類為該第M組直方圖數組中的一個直方圖數組所屬的類別;
[0144]其中,N和M為正整數,且M小于或等于N。
[0145]更為可選地,閾值獲取模塊13具體用于根據該待分類的直方圖數組,采用直方圖相交法、距離法、中心距法、參考顏色表法或者累加顏色直方圖法,獲取該待分類的圖片的待分類的閾值。
[0146]最后應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。
【權利要求】
1.一種分類處理方法,其特征在于,包括: 獲取待分類的圖片文件中每個像素的色彩、亮度和飽和度HSV色彩空間的數值;根據所述每個像素的HSV色彩空間的數值,獲取所述待分類的圖片文件的待分類的直方圖數組,并根據所述待分類的直方圖數組,獲取所述待分類的圖片的待分類的閾值; 根據所述待分類的閾值,對所述待分類的圖片進行分類處理。
2.根據權利要求1所述的分類處理方法,其特征在于,所述獲取待分類的圖片文件中每個像素的HSV色彩空間的數值,包括: 獲取所述待分類的圖片文件的圖片格式,并根據所述圖片格式,獲取所述待分類的圖片文件中每個像素的紅綠藍RGB數值; 分別將所述待分類的圖片文件中每個像素的RGB數值轉換成HSV色彩空間的數值。
3.根據權利要求2所述的分類處理方法,其特征在于,所述根據所述每個像素的HSV色彩空間的數值,獲取所述待分類的圖片文件的待分類的直方圖數組,包括: 依次根據所述每個像素的HSV色彩空間的數值,獲取預先配置的直方圖數組中,與所述每個像素中的HSV色彩空間的數值對應的色彩域,并將對應的色彩域的值加1,以獲取所述待分類的圖片文件的待分類的直方圖數組。
4.根據權利要求1至3任一所述的分類處理方法,其特征在于,所述根據所述待分類的閾值,對所述待分類的圖片進行分類處理,包括: 將所述待分類的閾值依次與預先配置的N個參考圖片對應的參考閾值相比較,若所述待分類的閾值大于第M個參考圖片的參考閾值,則將所述待分類的圖片文件歸類為所述第M個參考圖片所屬的類別; 其中,N和M為正整數,且M小于或等于N。
5.根據權利要求1至3任一所述的分類處理方法,其特征在于,還包括: 將獲取的所述待分類的圖片文件的待分類的直方圖數組存儲在數據庫中; 則所述根據所述待分類的閾值,對所述待分類的圖片進行分類處理,包括: 將所述待分類的閾值依次與所述數據庫中存儲的N組直方圖數組中的一個直方圖數據對應的分類閾值相比較,若所述待分類的閾值與第M組直方圖數組中的一個直方圖數組對應的分類閾值相差小于預設閾值,則將所述待分類的圖片文件歸類為所述第M組直方圖數組中的一個直方圖數組所屬的類別; 其中,N和M為正整數,且M小于或等于N。
6.根據權利要求1所述的分類處理方法,其特征在于,所述根據所述待分類的直方圖數組,獲取所述待分類的圖片的待分類的閾值,包括: 根據所述待分類的直方圖數組,采用直方圖相交法、距離法、中心距法、參考顏色表法或者累加顏色直方圖法,獲取所述待分類的圖片的待分類的閾值。
7.一種分類處理裝置,其特征在于,包括: 色彩、亮度和飽和度HSV色彩空間的數值獲取模塊,用于獲取待分類的圖片文件中每個像素的HSV色彩空間的數值; 直方圖數組獲取模塊,用于根據所述每個像素的HSV色彩空間的數值,獲取所述待分類的圖片文件的待分類的直方圖數組; 閾值獲取模塊,用于根據所述待分類的直方圖數組,獲取所述待分類的圖片的待分類的閾值; 分類處理模塊,用于根據所述待分類的閾值,對所述待分類的圖片進行分類處理。
8.根據權利要求7所述的分類處理裝置,其特征在于,所述HSV色彩空間的數值獲取模塊具體用于獲取所述待分類的圖片文件的圖片格式,并根據所述圖片格式,獲取所述待分類的圖片文件中每個像素的紅綠藍RGB數值;分別將所述待分類的圖片文件中每個像素的RGB數值轉換成HSV色彩空間的數值。
9.根據權利要求8所述的分類處理裝置,其特征在于,所述直方圖數組獲取模塊具體用于依次根據所述每個像素的HSV色彩空間的數值,獲取預先配置的直方圖數組中,與所述每個像素中的HSV色彩空間的數值對應的色彩域,并將對應的色彩域的值加1,以獲取所述待分類的圖片文件的待分類的直方圖數組。
10.根據權利要求7至9任一所述的分類處理裝置,其特征在于,所述分類處理模塊具體用于將所述待分類的閾值依次與預先配置的N個參考圖片對應的參考閾值相比較,若所述待分類的閾值大于第M個參考圖片的參考閾值,則將所述待分類的圖片文件歸類為所述第M個參考圖片所屬的類別; 其中,N和M為正整數,且M小于或等于N。
11.根據權利要求1至9任一所述的分類處理裝置,其特征在于,所述直方圖數組獲取模塊還用于將獲取的所述待分類的圖片文件的待分類的直方圖數組存儲在數據庫中; 則所述分類處理模塊具體用于將所述待分類的閾值依次與所述數據庫中存儲的N組直方圖數組中的一個直方圖數據對應的分類閾值相比較,若所述待分類的閾值與第M組直方圖數組中的一個直方圖數組對應的分類閾值相差小于預設閾值,則將所述待分類的圖片文件歸類為所述第M組直方圖數組中的一個直方圖數組所屬的類別; 其中,N和M為正整數,且M小于或等于N。
12.根據權利要求7所述的分類處理裝置,其特征在于,所述閾值獲取模塊具體用于根據所述待分類的直方圖數組,采用直方圖相交法、距離法、中心距法、參考顏色表法或者累加顏色直方圖法,獲取所述待分類的圖片的待分類的閾值。
【文檔編號】G06K9/62GK104517115SQ201310455139
【公開日】2015年4月15日 申請日期:2013年9月29日 優先權日:2013年9月29日
【發明者】李澎 申請人:北大方正集團有限公司, 北京北大方正電子有限公司