91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

哈希(hashing)是一種代表性方法,通常目標是將樣本表示成一串固定長度的二值編碼(通常使用0/1或-1/+1表示其中的每個bit),使得相似的樣本具有相似的二值碼(使用Hamming距離度量二值碼之間的相似性)。 (1) 設計并實現一種Hash算法 (2) 實現本地圖像檢索軟件 (3) 選用標準圖像庫,對每一幅輸入模板圖像,檢索列出最接近10幅圖像 1.縮小圖片:32 * 32是一個較好的大小,這樣方便DCT計算 2.轉化為灰度圖:把縮放后的圖片轉化為256階的灰度圖。(具體算法見平均哈希算法步驟) 3.計算DCT:DCT把圖片分離成分率的集合 4.縮小DCT:DCT是32*32,保留左上角的8*8,這些代表的圖片的最低頻率 5.計算平均值:計算縮小DCT后的所有像素點的平均值。 6.進一步減小DCT:大于平均值記錄為1,反之記錄為0. 7.得到信息指紋:組合64個信息位,順序隨意保持一致性即可。 8.對比指紋:計算兩幅圖片的指紋,計算漢明距離(從一個指紋到另一個指紋需要變幾次),漢明距離越大則說明圖片越不一致,反之,漢明距離越小則說明圖片越相似,當距離為0時,說明完全相同。(通常認為距離>10 就是兩張完全不同的圖片)

資源截圖

代碼片段和文件信息

#include?“stdafx.h“
#include?“hash.h“
string?pHashValue(Mat?&src)
{
Mat?img?dst;
string?rst(64?‘\0‘);
double?dIdex[64];
double?mean?=?0.0;
int?k?=?0;
if?(src.channels()?==?3)
{
cvtColor(src?src?CV_BGR2GRAY);
img?=?Mat_(src);
}
else
{
img?=?Mat_(src);
}
/*?第一步,縮放尺寸*/
resize(img?img?Size(8?8));

/*?第二步,離散余弦變換,DCT系數求取*/
dct(img?dst);

/*?第三步,求取DCT系數均值(左上角8*8區塊的DCT系數)*/
for?(int?i?=?0;?i? for?(int?j?=?0;?j? {
dIdex[k]?=?dst.at(i?j);
mean?+=?dst.at(i?j)?/?64;
++k;
}
}
/*?第四步,計算哈希值。*/
for?(int?i?=?0;?i<64;?++i)
{
if?(dIdex[i]?>=?mean)
{
rst[i]?=?‘1‘;
}
else
{
rst[i]?=?‘0‘;
}
}
return?rst;
}

int?HanmingDistance(string?&str1?string?&str2)
{
if?((str1.size()?!=?64)?||?(str2.size()?!=?64))
return?-1;
int?difference?=?0;
for?(int?i?=?0;?i<64;?i++)
{
if?(str1[i]?!=?str2[i])
difference++;
}
return?difference;
}

/*計算漢明距離*/
int?ahashhammingDistance(const?bitset?&query?const?bitset?&target){
int?distance?=?0;
for?(int?i?=?0;?i? distance?+=?(query[i]?==?target[i]???0?:?1);
}
return?distance;
}

//?計算8*8圖像的平均灰度??
float?ahashcalcAverage(Mat_?image?const?int?&size){
float?sum?=?0;
for?(int?i?=?0;?i? for?(int?j?=?0;?j? sum?+=?image(i?j);
}
}
return?sum?/?(size*size);
}

/*?計算hash值
image:8*8的灰度圖像
size:?圖像大小??8*8
ahahs:存放64位hash值
averagePix:?灰度值的平均值
*/
void?ahashfingerPrint(Mat_?image?const?int?&size?bitset?&ahash?const?float?&averagePix){
for?(int?i?=?0;?i? int?pos?=?i?*?size;
for?(int?j?=?0;?j? ahash[pos?+?j]?=?image(i?j)?>=?averagePix???1?:?0;
}
}
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-10-10?17:02??基于hash的圖像檢索軟件\
?????目錄???????????0??2018-10-10?17:01??基于hash的圖像檢索軟件\源碼\
?????目錄???????????0??2018-04-22?14:44??基于hash的圖像檢索軟件\源碼\pHash\
?????目錄???????????0??2018-10-10?17:01??基于hash的圖像檢索軟件\源碼\pHash\pHash\
?????文件????????3998??2018-04-20?20:22??基于hash的圖像檢索軟件\源碼\pHash\pHash\ReadMe.txt
?????文件????????1934??2018-04-22?09:56??基于hash的圖像檢索軟件\源碼\pHash\pHash\hash.cpp
?????文件?????????712??2018-04-22?09:56??基于hash的圖像檢索軟件\源碼\pHash\pHash\hash.h
?????文件????????2361??2018-04-20?20:22??基于hash的圖像檢索軟件\源碼\pHash\pHash\pHash.cpp
?????文件?????????437??2018-04-20?20:22??基于hash的圖像檢索軟件\源碼\pHash\pHash\pHash.h
?????文件???????12058??2018-04-21?15:21??基于hash的圖像檢索軟件\源碼\pHash\pHash\pHash.vcxproj
?????文件???????10586??2018-04-22?10:53??基于hash的圖像檢索軟件\源碼\pHash\pHash\pHashDlg.cpp
?????目錄???????????0??2018-04-22?14:44??基于hash的圖像檢索軟件\源碼\pHash\pHash\res\
?????文件???????67777??2013-07-22?01:18??基于hash的圖像檢索軟件\源碼\pHash\pHash\res\pHash.ico
?????文件?????????666??2018-04-20?20:22??基于hash的圖像檢索軟件\源碼\pHash\pHash\res\pHash.rc2
?????文件?????????138??2018-04-20?20:22??基于hash的圖像檢索軟件\源碼\pHash\pHash\stdafx.cpp
?????文件????????1578??2018-04-20?20:22??基于hash的圖像檢索軟件\源碼\pHash\pHash\stdafx.h
?????文件?????????234??2018-04-20?20:22??基于hash的圖像檢索軟件\源碼\pHash\pHash\targetver.h
?????文件???100597760??2018-04-22?14:44??基于hash的圖像檢索軟件\源碼\pHash\pHash.sdf
?????文件????????1315??2018-04-21?14:13??基于hash的圖像檢索軟件\源碼\pHash\pHash.sln
?????文件???????31232??2018-04-22?14:44??基于hash的圖像檢索軟件\源碼\pHash\pHash.v12.suo
?????目錄???????????0??2018-10-10?16:49??基于hash的圖像檢索軟件\演示\
?????文件???????75073??2018-04-21?22:08??基于hash的圖像檢索軟件\演示\QQ圖片20180422122413.jpg
?????文件???????16801??2018-04-19?21:25??基于hash的圖像檢索軟件\要求.docx
?????文件??????????64??2018-10-10?13:39??基于hash的圖像檢索軟件\說明.txt

評論

共有 條評論