亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java基于直方圖應用的相似圖片識別實例

2019-11-26 15:24:47
字體:
來源:轉載
供稿:網友

本文實例講述了Java實現基于直方圖應用的相似圖片識別,是非常實用的技巧。分享給大家供大家參考。具體分析如下:

一、算法概述:

首先對源圖像與要篩選的圖像進行直方圖數據采集,對采集的各自圖像直方圖進行歸一化再使用巴氏系數算法對直方圖數據進行計算,最終得出圖像相似度值,其值范圍在[0, 1]之間

0表示極其不同,1表示極其相似(相同)。

二、算法步驟詳解:

大致可以分為兩步,根據源圖像與候選圖像的像素數據,生成各自直方圖數據。第二步:使用第一步輸出的直方圖結果,運用巴氏系數(Bhattacharyya coefficient)算法,計算出相似程度值。

第一步:直方圖計算

直方圖分為灰度直方圖與RGB直方圖,對于灰度圖像直方圖計算十分簡單,只要初始化一個大小為256的直方圖數組H,然后根據像素值完成頻率分布統計,假設像素值為124,則H[124] += 1, 而對于彩色RGB像素來說直方圖表達有兩種方式,一種是單一直方圖,另外一種是三維直方圖,三維直方圖比較簡單明了,分別對應RGB三種顏色,定義三個直方圖HR,HG, HB, 假設某一個像素點P的RGB值為(4, 231,129), 則對于的直方圖計算為HR[4] += 1,HG[231] += 1, HB[129] += 1, 如此對每個像素點完成統計以后,RGB彩色直方圖數據就生成了。

而RGB像素的單一直方圖SH表示稍微復雜點,每個顏色的值范圍為0 ~ 255之間的,假設可以分為一定范圍等份,當8等份時,每個等份的值范圍為32, 16等份時,每個等份值范圍為16,當4等份時候,每個等份值的范圍為64,假設RGB值為(14, 68, 221), 16等份之后,它對應直方圖索引值(index)分別為: (0, 4, 13), 根據計算索引值公式:index = R + G*16 + B*16*16

對應的直方圖index = 0 + 4*16 + 13 * 16 * 16, SH[3392] += 1

如此遍歷所有RGB像素值,完成直方圖數據計算。

第二步:巴氏系數計算,計算公式如下:

其中P, P'分別代表源與候選的圖像直方圖數據,對每個相同i的數據點乘積開平方以后相加

得出的結果即為圖像相似度值(巴氏系數因子值),范圍為0到1之間。

程序效果如下圖所示:

相似度超過99%以上,極其相似

相似度為:72%, 一般相似

三、程序直方圖計算源代碼如下:

public void setGreenBinCount(int greenBinCount) {   this.greenBins = greenBinCount; }  public void setBlueBinCount(int blueBinCount) {   this.blueBins = blueBinCount; }  public float[] filter(BufferedImage src, BufferedImage dest) {   int width = src.getWidth();     int height = src.getHeight();          int[] inPixels = new int[width*height];     float[] histogramData = new float[redBins * greenBins * blueBins];     getRGB( src, 0, 0, width, height, inPixels );     int index = 0;     int redIdx = 0, greenIdx = 0, blueIdx = 0;     int singleIndex = 0;     float total = 0;     for(int row=0; row<height; row++) {     int ta = 0, tr = 0, tg = 0, tb = 0;     for(int col=0; col<width; col++) {       index = row * width + col;       ta = (inPixels[index] >> 24) & 0xff;         tr = (inPixels[index] >> 16) & 0xff;         tg = (inPixels[index] >> 8) & 0xff;         tb = inPixels[index] & 0xff;         redIdx = (int)getBinIndex(redBins, tr, 255);         greenIdx = (int)getBinIndex(greenBins, tg, 255);         blueIdx = (int)getBinIndex(blueBins, tb, 255);         singleIndex = redIdx + greenIdx * redBins + blueIdx * redBins * greenBins;         histogramData[singleIndex] += 1;         total += 1;     }     }          // start to normalize the histogram data     for (int i = 0; i < histogramData.length; i++)     {     histogramData[i] = histogramData[i] / total;     }          return histogramData; } 

計算巴氏系數的代碼如下:

/**  * Bhattacharyya Coefficient  * http://www.cse.yorku.ca/~kosta/CompVis_Notes/bhattacharyya.pdf  *  * @return  */ public double modelMatch() {   HistogramFilter hfilter = new HistogramFilter();   float[] sourceData = hfilter.filter(sourceImage, null);   float[] candidateData = hfilter.filter(candidateImage, null);   double[] mixedData = new double[sourceData.length];   for(int i=0; i<sourceData.length; i++ ) {     mixedData[i] = Math.sqrt(sourceData[i] * candidateData[i]);   }      // The values of Bhattacharyya Coefficient ranges from 0 to 1,   double similarity = 0;   for(int i=0; i<mixedData.length; i++ ) {     similarity += mixedData[i];   }      // The degree of similarity   return similarity; }

希望本文所述對大家的Java程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品扒开腿爽爽爽视频| 91av在线不卡| 亚洲综合中文字幕在线| 成人黄色午夜影院| 国产精品精品视频一区二区三区| 欧美性猛交xxxxx免费看| 91久久久久久久久| 亚洲综合日韩中文字幕v在线| 久久久精品久久久久| 国产成人久久久| 精品亚洲va在线va天堂资源站| 久久久免费精品视频| 国产精品成人国产乱一区| 精品亚洲一区二区三区在线观看| 米奇精品一区二区三区在线观看| 精品高清美女精品国产区| 国产视频欧美视频| 国产精品高潮呻吟久久av无限| 精品视频www| 欧美激情中文字幕在线| 亚洲欧美一区二区三区在线| 2019最新中文字幕| 欧美日韩国产成人高清视频| 国产欧美精品va在线观看| 97视频在线观看亚洲| 97精品在线观看| 日韩女优人人人人射在线视频| 日韩美女在线看| 亚洲精品日产aⅴ| 久久久久久亚洲精品| 欧美有码在线观看视频| 久久在线免费观看视频| 日韩精品免费电影| 午夜精品一区二区三区在线| 国产视频自拍一区| 精品久久久久久久久久国产| 欧美在线视频a| 亚洲欧美日韩一区二区三区在线| 久久精品国产免费观看| 亚洲欧美在线一区| 日日噜噜噜夜夜爽亚洲精品| 91欧美精品午夜性色福利在线| 成人精品久久一区二区三区| 国产精品一区二区在线| 美女视频黄免费的亚洲男人天堂| 视频直播国产精品| 日韩高清电影免费观看完整| 欧美肥臀大乳一区二区免费视频| 欧日韩在线观看| 亚洲欧美日韩另类| 国产精品av网站| 欧美性理论片在线观看片免费| 亚洲女人天堂成人av在线| 亚洲激情小视频| 国产欧美精品xxxx另类| 7777精品视频| 久久伊人精品一区二区三区| 国产成人自拍视频在线观看| 日韩av理论片| 久久好看免费视频| 色综合五月天导航| 九九九久久国产免费| 国产精品极品在线| 国产这里只有精品| 亚洲第一区中文字幕| 91天堂在线视频| 久久精品中文字幕免费mv| 久久久久久久久久久成人| 亚洲精品久久久久中文字幕二区| 久久久久久久国产精品视频| 精品国产成人av| 欧美精品videosex牲欧美| 91国产视频在线| 久久久亚洲福利精品午夜| 国产亚洲欧美日韩美女| 亚洲视频999| 欧美激情一区二区三区久久久| 中文欧美日本在线资源| 成人中文字幕+乱码+中文字幕| 久久久免费高清电视剧观看| 欧美成人精品xxx| 国产自产女人91一区在线观看| 96精品久久久久中文字幕| 中文字幕日韩在线视频| 最近2019年中文视频免费在线观看| 国内精品视频久久| 91精品久久久久久久久不口人| 在线丨暗呦小u女国产精品| 久久精品在线播放| 欧美日韩国产在线播放| 国产精品第一页在线| 97精品国产97久久久久久免费| 97在线精品视频| 欧美成人午夜激情视频| 日本久久亚洲电影| 精品国产鲁一鲁一区二区张丽| 亚洲第一精品电影| 色播久久人人爽人人爽人人片视av| 米奇精品一区二区三区在线观看| 国产裸体写真av一区二区| 久久亚洲一区二区三区四区五区高| 在线精品国产成人综合| 亚洲一区二区三区四区在线播放| 精品免费在线观看| 日韩精品久久久久久福利| 国产一区二区日韩| 欧美激情免费视频| 成人中文字幕在线观看| 久久视频在线免费观看| 中文字幕在线国产精品| 国产精品丝袜久久久久久不卡| 日本精品视频在线观看| 久久久亚洲成人| 国产精品黄色影片导航在线观看| 麻豆国产va免费精品高清在线| 成人黄色av播放免费| 亚洲视频一区二区三区| 国产成人精品免高潮在线观看| 91精品国产综合久久久久久蜜臀| 综合136福利视频在线| 欧美视频在线免费| 97色在线观看免费视频| 最新亚洲国产精品| zzjj国产精品一区二区| 26uuu另类亚洲欧美日本一| 欧美成人中文字幕| 亚洲精品av在线| 一区二区三区国产视频| 夜夜嗨av一区二区三区四区| 亚洲天堂免费视频| 亚洲午夜精品久久久久久久久久久久| 一区二区三区国产视频| 91精品国产综合久久久久久久久| 日韩有码在线视频| 亚洲第一天堂无码专区| 人人澡人人澡人人看欧美| 国产日韩一区在线| 日韩欧美亚洲范冰冰与中字| 亚洲人成在线观看| 国产91在线播放| 亚洲色图国产精品| 亚洲激情在线观看| 午夜剧场成人观在线视频免费观看| 8x海外华人永久免费日韩内陆视频| 97国产成人精品视频| 国产美女被下药99| 欧美电影免费观看网站| 欧美大片在线看| 亚洲综合一区二区不卡| 91精品国产自产在线老师啪| 欧美日韩国产成人在线观看| 久久精品国产亚洲一区二区| 成人精品一区二区三区| 亚洲精品aⅴ中文字幕乱码| 国产精品久久久久久久7电影| 91中文字幕在线观看| 91亚洲精品一区二区| 日本老师69xxx| 久久中文久久字幕| 在线午夜精品自拍| 国产成人精品在线视频| 国产一区二区三区四区福利| 国产在线a不卡| 国产国语刺激对白av不卡|