下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、圖片相似度判斷-差異值哈希算法JAVA版在網(wǎng)上找了好久都沒(méi)有找到判斷圖片相似度的差異值哈希算法的JAVA版正確實(shí)現(xiàn),自己手寫(xiě)了一個(gè),提供給大家參考。差異值哈希算法的流程(dHash)圖片縮放為9*8大小將圖片灰度化差異值計(jì)算(每行相鄰像素的差值,這樣會(huì)生成8*8的差值,前一個(gè)像素大于后一個(gè)像素則為1,否則為0)生成哈希值packagecom.example.demo.hello;importjavax.imageio.ImagelO;importjava.awt.*;importjava.awt.image.Bufferedlmage;importjava.io.File;importjava
2、.io.IOException;/*差異哈希算法*/publicclassDHashUtil/*計(jì)算dHash方法*paramfile文件returnhash*/privatestaticStringgetDHash(Filefile)讀取文件BufferedlmagesrcImage;trysrcImage=ImagelO.read(file);catch(lOExceptione)e.printStackTrace();returnnull;文件轉(zhuǎn)成9*8像素,為算法比較通用的長(zhǎng)寬BufferedlmagebuffImg=newBufferedImage(9,8,BufferedImage
3、.TYPE_INT_RGB);buffImg.getGraphics().drawImage(srcImage.getScaledInstance(9,8,Image.SCALE_SMOOTH),0,0,null);intwidth=buffImg.getWidth();intheight=buffImg.getHeight();intgrayPix=newintwidthheight;StringBufferfigure=newStringBuffer();for(inty=0;yheight;y+)for(intx=0;x16&0 xff;intg=rgb8&Oxff;intb=rgb&O
4、xff;intgray=(r*30+g*59+b*11)/100;grayPixxy=gray;開(kāi)始計(jì)算dHash總共有9*8像素每行相對(duì)有8個(gè)差異值總共有8*8=64個(gè)if(x!=0)longbit=grayPixx-1ygrayPixxy?1:0;figure.append(bit);returnfigure.toString();/*計(jì)算海明距離vp*原本用于編碼的檢錯(cuò)和糾錯(cuò)的一個(gè)算法*現(xiàn)在拿來(lái)計(jì)算相似度,如果差異值小于一定閾值則相似,一般經(jīng)驗(yàn)值小于5為同一張圖片*paramstrlparamstr2return距離*/privatestaticlonggetHammingDistanc
5、e(Stringstrl,Stringstr2)intdistance;if(str1=null|str2=null|str1.length()!=str2.length()distance=-1;elsedistance=0;for(inti=0;istr1.length();i+)if(str1.charAt(i)!=str2.charAt(i)distance+;returndistance;/DHashUtil參數(shù)值為待處理文件夾publicstaticvoidmain(Stringargs)Filefile1=newFile(xxx/1.jpg);Filefile2=newFile(xxx/2.jpg);System.out.println(圖片1hash值:+getDHash(file1);System.out.println(圖片2hash值:+getDHash(file2);System.out.println(海明距離為:+getHammingDistance(getDHash(file1),getDHash(file2);運(yùn)行結(jié)果如下:圖片lhash值:1001110011111000101100101001010011001000111000001001100011000000圖片2hash值:1001110011111000101
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年臨時(shí)倉(cāng)儲(chǔ)設(shè)施租賃及管理服務(wù)合同
- 標(biāo)準(zhǔn)新工程設(shè)計(jì)合同樣本
- 2024年多人合伙共盈合同書(shū)范本
- 2024年度智能倉(cāng)庫(kù)設(shè)備安裝合同
- 代銷(xiāo)協(xié)議書(shū)范例2024
- 全面房屋裝修合同模板集成
- 出口業(yè)務(wù)代理協(xié)議范本
- 2024物流合同范本
- 常見(jiàn)勞務(wù)派遣委托協(xié)議樣本
- 廣州建設(shè)工程裝修施工合同范例
- 雅魯藏布江大拐彎巨型水電站規(guī)劃方案
- 廣西基本醫(yī)療保險(xiǎn)門(mén)診特殊慢性病申報(bào)表
- 城市經(jīng)濟(jì)學(xué)習(xí)題與答案
- 國(guó)開(kāi)成本會(huì)計(jì)第14章綜合練習(xí)試題及答案
- 幼兒園大班科學(xué):《樹(shù)葉為什么會(huì)變黃》課件
- 1到50帶圈數(shù)字直接復(fù)制
- 鐵路工程施工組織設(shè)計(jì)(施工方案)編制分類(lèi)
- 幼兒園中班數(shù)學(xué)《有趣的圖形》課件
- 《規(guī)劃每一天》教案2021
- 草莓創(chuàng)意主題實(shí)用框架模板ppt
- 山大口腔頜面外科學(xué)課件第5章 口腔種植外科-1概論、口腔種植的生物學(xué)基礎(chǔ)
評(píng)論
0/150
提交評(píng)論