下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
#include <cv.h>#include <highgui.h>#include <stdlib.h> //计算图像感知hash值。详情看:http://blog.csdn.net/lhfslhfs/article/details/9157845int64 CalcImagePerceptualHashKey(const Iplimage* pImage){ Iplimage* pTheImage8X8 = cvCreateImage(cvSize(8,8),pImage->depth,pImage->nChannels); Iplimage* pGrayscaleImage = cvCreateImage(cvSize(8,8,1); cvResize(pImage,pTheImage8X8,CV_INTER_AREA); cvConvertimage(pTheImage8X8,pGrayscaleImage); cvReleaseImage(&pTheImage8X8); //计算平均值 float fElementMean = 0; for (int y = 0; y < 8; ++y) { for (int x = 0; x < 8; ++x) { unsigned char& cElem = *(unsigned char*)(pGrayscaleImage->imageData + x + y * pGrayscaleImage->wIDthStep); cElem = (unsigned char)(cElem / (float)255 * 64); fElementMean += cElem; } } fElementMean /= 64; unsigned char cElementKey = 0; int64 key = 0; unsigned char* pKeyPtr = (unsigned char*)&key; for (int y = 0; y < 8; ++y) { for (int x = 0; x < 8; ++x) { if (fElementMean > *(unsigned char*)(pGrayscaleImage->imageData + x + y * pGrayscaleImage->wIDthStep)) { //小于平均值即为0。 cElementKey <<= 1; } else { //否则即为1 cElementKey <<= 1; cElementKey |= 1; } } pKeyPtr[y] = cElementKey; } cvReleaseImage(&pGrayscaleImage); return key;} //比较2个key的相似度,结果以1为最相似,0为不相似。float CompareImageKeySimilarity(int64 key1,int64 key2){ int64 keyResult = key1 ^ key2; int nOneCount = 0; int i = 64; while(i--) { if ((keyResult & 1) == 1) nOneCount++; keyResult >>= 1; } printf("nOneCount = %dn",nOneCount); return nOneCount == 0 ? 1 : (64 - nOneCount) / (float)64;} int main(int argc,char* argv[]){ Iplimage* pSrc1 = cvLoadImage("D:\cvimg\gujinlin1.jpg"); Iplimage* pSrc2 = cvLoadImage("D:\cvimg\gujinlin2.jpg"); int64 key1 = CalcImagePerceptualHashKey(pSrc1); int64 key2 = CalcImagePerceptualHashKey(pSrc2); printf("key1 = 0x%llX,key2 = 0x%llX,Similarity = %.2fn",key1,key2,CompareImageKeySimilarity(key1,key2)); return 0;}
以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的Google图像对比基本算法的简单实现全部内容,希望文章能够帮你解决Google图像对比基本算法的简单实现所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)