資源簡(jiǎn)介
這是一個(gè)用pHash算法實(shí)現(xiàn)的圖像搜索實(shí)例,供大家相互學(xué)習(xí)參考。

代碼片段和文件信息
package?cn.edu.jxau.image;
import?java.awt.Color;
import?java.awt.image.BufferedImage;
import?java.awt.image.ColorModel;
/**
?*?圖像的放大與縮小
?*?@author?xiaoxu
?*
?*/
public?class?AmplificatingShrinking?{
/**
?*?雙線(xiàn)性插值法圖像的放大
?*?@param?srcPath
?*?@param?distPath
?*?@param?formatName
?*?@param?k1
?*?@param?k2
?*/
public?static?void?bilinearityInterpolation(String?srcPath?String?distPath
String?formatName?float?k1?float?k2)?{
BufferedImage?img?=?ImageDigital.readImg(srcPath);
BufferedImage?imgOut?=?bilinearityInterpolation(img?k1?k2);
ImageDigital.writeImg(imgOut?formatName?distPath);
}
/**
?*?雙線(xiàn)性插值法圖像的放大
?*?
?*?@param?img
?*????????????要縮小的圖像對(duì)象
?*?@param?k1
?*????????????要縮小的列比列
?*?@param?k2
?*????????????要縮小的行比列
?*?@return?返回處理后的圖像對(duì)象
?*/
public?static?BufferedImage?bilinearityInterpolation(BufferedImage?img?float?k1?float?k2)?{
if?(k1?1?||?k2?1)?{//?如果k1?<1?||?k2<1則是圖片縮小,不是放大
System.err
.println(“this?is?shrink?image?funcation?please?set?k1<=1?and?k2<=1!“);
return?null;
}
float?ii?=?1?/?k1;?//?采樣的行間距
float?jj?=?(1?/?k2);?//?采樣的列間距
int?dd?=?(int)?(ii?*?jj);
//?int?m=0??n=0;
int?imgType?=?img.getType();
int?w?=?img.getWidth();?//?原圖片的寬
int?h?=?img.getHeight();?//?原圖片的寬
int?m?=?Math.round(k1?*?w);?//?放大后圖片的寬
int?n?=?Math.round(k2?*?h);?//?放大后圖片的寬
int[]?pix?=?new?int[w?*?h];
pix?=?img.getRGB(0?0?w?h?pix?0?w);
/*
?*?System.out.println(w?+?“?*?“?+?h);?System.out.println(m?+?“?*?“?+?n);
?*/
int[]?newpix?=?new?int[m?*?n];
for?(int?j?=?0;?j? for?(int?i?=?0;?i? int?x0?=?Math.round(i?*?k1);
int?y0?=?Math.round(j?*?k2);
int?x1?y1;
if?(i?==?w?-?2)?{
x1?=?m?-?1;
}?else?{
x1?=?Math.round((i?+?1)?*?k1);
}
if?(j?==?h?-?2)?{
y1?=?n?-?1;
}?else?{
y1?=?Math.round((j?+?1)?*?k2);
}
int?d1?=?x1?-?x0;
int?d2?=?y1?-?y0;
if?(0?==?newpix[y0?*?m?+?x0])?{
newpix[y0?*?m?+?x0]?=?pix[j?*?w?+?i];
}
if?(0?==?newpix[y0?*?m?+?x1])?{
if?(i?==?w?-?2)?{
newpix[y0?*?m?+?x1]?=?pix[j?*?w?+?w?-?1];
}?else?{
newpix[y0?*?m?+?x1]?=?pix[j?*?w?+?i?+?1];
}
}
if?(0?==?newpix[y1?*?m?+?x0])?{
if?(j?==?h?-?2)?{
newpix[y1?*?m?+?x0]?=?pix[(h?-?1)?*?w?+?i];
}?else?{
newpix[y1?*?m?+?x0]?=?pix[(j?+?1)?*?w?+?i];
}
}
if?(0?==?newpix[y1?*?m?+?x1])?{
if?(i?==?w?-?2?&&?j?==?h?-?2)?{
newpix[y1?*?m?+?x1]?=?pix[(h?-?1)?*?w?+?w?-?1];
}?else?{
newpix[y1?*?m?+?x1]?=?pix[(j?+?1)?*?w?+?i?+?1];
}
}
int?r?g?b;
float?c;
ColorModel?cm?=?ColorModel.getRGBdefault();
for?(int?l?=?0;?l? for?(int?k?=?0;?k? if?(0?==?l)?{
//?f(x0)?=?f(00)?+?c1*(f(10)-f(00))
if?(j? c?=?(float)?k?/?d1;
r?
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件????????301??2012-11-24?23:35??ImageSearch\.classpath
?????文件????????387??2012-11-24?23:35??ImageSearch\.project
?????文件????????629??2012-11-24?23:35??ImageSearch\.settings\org.eclipse.jdt.core.prefs
?????文件???????7364??2012-11-24?23:36??ImageSearch\bin\cn\edu\jxau\image\AmplificatingShrinking.class
?????文件???????4047??2012-11-24?23:41??ImageSearch\bin\cn\edu\jxau\image\Fingerprint.class
?????文件???????4822??2012-11-24?23:54??ImageSearch\bin\cn\edu\jxau\image\ImageDigital.class
?????文件???????3127??2012-11-24?23:35??ImageSearch\bin\cn\edu\jxau\image\Transformation.class
?????文件??????69007??2012-11-24?23:37??ImageSearch\bin\image\person.jpg
?????文件???????2143??2012-11-24?23:37??ImageSearch\bin\image\person1.jpg
?????文件???????7959??2012-11-24?23:37??ImageSearch\bin\image\person10.jpg
?????文件???????2034??2012-11-24?23:37??ImageSearch\bin\image\person11.jpg
?????文件???????5181??2012-11-24?23:37??ImageSearch\bin\image\person2.jpg
?????文件???????1847??2012-11-24?23:37??ImageSearch\bin\image\person3.jpg
?????文件???????1143??2012-11-24?23:37??ImageSearch\bin\image\person4.jpg
?????文件???????4354??2012-11-24?23:37??ImageSearch\bin\image\person5.jpg
?????文件???????6735??2012-11-24?23:37??ImageSearch\bin\image\person6.jpg
?????文件???????7442??2012-11-24?23:37??ImageSearch\bin\image\person7.jpg
?????文件???????1872??2012-11-24?23:37??ImageSearch\bin\image\person8.jpg
?????文件???????1191??2012-11-24?23:37??ImageSearch\bin\image\person9.jpg
?????文件??????12960??2012-11-24?23:36??ImageSearch\src\cn\edu\jxau\image\AmplificatingShrinking.java
?????文件???????4736??2012-11-24?23:41??ImageSearch\src\cn\edu\jxau\image\Fingerprint.java
?????文件???????8590??2012-11-24?23:54??ImageSearch\src\cn\edu\jxau\image\ImageDigital.java
?????文件???????3310??2012-11-23?23:37??ImageSearch\src\cn\edu\jxau\image\Transformation.java
?????文件??????69007??2012-11-24?23:37??ImageSearch\src\image\person.jpg
?????文件???????2143??2012-11-24?23:37??ImageSearch\src\image\person1.jpg
?????文件???????7959??2012-11-24?23:37??ImageSearch\src\image\person10.jpg
?????文件???????2034??2012-11-24?23:37??ImageSearch\src\image\person11.jpg
?????文件???????5181??2012-11-24?23:37??ImageSearch\src\image\person2.jpg
?????文件???????1847??2012-11-24?23:37??ImageSearch\src\image\person3.jpg
?????文件???????1143??2012-11-24?23:37??ImageSearch\src\image\person4.jpg
............此處省略22個(gè)文件信息
- 上一篇:geoserver跨越war包
- 下一篇:javaee中文api
評(píng)論
共有 條評(píng)論