資源簡介
基于感知哈希中phash算法,漢明距離判別。進行圖像檢索,功能類似于百度/谷歌的以圖搜圖,不錯的算法哦~
代碼片段和文件信息
#include?“StdAfx.h“
#include?“CvvImage.h“
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
CV_INLINE?RECT?NormalizeRect(?RECT?r?);
CV_INLINE?RECT?NormalizeRect(?RECT?r?)
{
???int?t;
???if(?r.left?>?r.right?)
???{
??????t?=?r.left;
??????r.left?=?r.right;
??????r.right?=?t;
???}
???if(?r.top?>?r.bottom?)
???{
??????t?=?r.top;
??????r.top?=?r.bottom;
??????r.bottom?=?t;
???}
???return?r;
}
CV_INLINE?CvRect?RectToCvRect(?RECT?sr?);
CV_INLINE?CvRect?RectToCvRect(?RECT?sr?)
{
???sr?=?NormalizeRect(?sr?);
???return?cvRect(?sr.left?sr.top?sr.right?-?sr.left?sr.bottom?-?sr.top?);
}
CV_INLINE?RECT?CvRectToRect(?CvRect?sr?);
CV_INLINE?RECT?CvRectToRect(?CvRect?sr?)
{
???RECT?dr;
???dr.left?=?sr.x;
???dr.top?=?sr.y;
???dr.right?=?sr.x?+?sr.width;
???dr.bottom?=?sr.y?+?sr.height;
???return?dr;
}
CV_INLINE?IplROI?RectToROI(?RECT?r?);
CV_INLINE?IplROI?RectToROI(?RECT?r?)
{
???IplROI?roi;
???r?=?NormalizeRect(?r?);
???roi.xOffset?=?r.left;
???roi.yOffset?=?r.top;
???roi.width?=?r.right?-?r.left;
???roi.height?=?r.bottom?-?r.top;
???roi.coi?=?0;
???return?roi;
}
void??FillBitmapInfo(?BITMAPINFO*?bmi?int?width?int?height?int?bpp?int?origin?)
{
???assert(?bmi?&&?width?>=?0?&&?height?>=?0?&&?(bpp?==?8?||?bpp?==?24?||?bpp?==?32));
???BITMAPINFOHEADER*?bmih?=?&(bmi->bmiHeader);
???memset(?bmih?0?sizeof(*bmih));
???bmih->biSize?=?sizeof(BITMAPINFOHEADER);
???bmih->biWidth?=?width;
???bmih->biHeight?=?origin???abs(height)?:?-abs(height);
???bmih->biPlanes?=?1;
???bmih->biBitCount?=?(unsigned?short)bpp;
???bmih->biCompression?=?BI_RGB;
???if(?bpp?==?8?)
???{
??????RGBQUAD*?palette?=?bmi->bmiColors;
??????int?i;
??????for(?i?=?0;?i?256;?i++?)
??????{
?????????palette[i].rgbBlue?=?palette[i].rgbGreen?=?palette[i].rgbRed?=?(BYTE)i;
?????????palette[i].rgbReserved?=?0;
??????}
???}
}
CvvImage::CvvImage()
{
???m_img?=?0;
}
void?CvvImage::Destroy()
{
???cvReleaseImage(?&m_img?);
}
CvvImage::~CvvImage()
{
???Destroy();
}
bool??CvvImage::Create(?int?w?int?h?int?bpp?int?origin?)
{
???const?unsigned?max_img_size?=?10000;
???if(?(bpp?!=?8?&&?bpp?!=?24?&&?bpp?!=?32)?||
??????(unsigned)w?>=??max_img_size?||?(unsigned)h?>=?max_img_size?||
??????(origin?!=?IPL_ORIGIN_TL?&&?origin?!=?IPL_ORIGIN_BL))
???{
??????assert(0);?//?most?probably?it?is?a?programming?error
??????return?false;
???}
???if(?!m_img?||?Bpp()?!=?bpp?||?m_img->width?!=?w?||?m_img->height?!=?h?)
???{
??????if(?m_img?&&?m_img->nSize?==?sizeof(IplImage))
?????????Destroy();
??????/*?prepare?IPL?header?*/
??????m_img?=?cvCreateImage(?cvSize(?w?h?)?IPL_DEPTH_8U?bpp/8?);
???}
???if(?m_img?)
??????m_img->origin?=?origin?==?0???IPL_ORIGIN_TL?:?IPL_ORIGIN_BL;
???return?m_img?!=?0;
}
void??CvvImage::CopyOf(?CvvImage&?image?int?desired_color?)
{
???IplImage*?img?=?image.GetI
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????7163??2014-08-17?11:15??ImageProcess\CvvImage.cpp
?????文件???????2007??2014-08-17?11:15??ImageProcess\CvvImage.h
?????文件?????105972??2014-09-15?20:41??ImageProcess\ImageProcess.aps
?????文件???????2071??2014-09-15?20:07??ImageProcess\ImageProcess.cpp
?????文件????????478??2014-09-15?20:07??ImageProcess\ImageProcess.h
?????文件??????10906??2014-09-15?20:41??ImageProcess\ImageProcess.rc
?????文件???75452416??2014-09-26?11:37??ImageProcess\ImageProcess.sdf
?????文件????????890??2014-09-15?20:07??ImageProcess\ImageProcess.sln
????..A..H.?????13824??2014-09-26?11:37??ImageProcess\ImageProcess.suo
?????文件???????6151??2014-09-15?20:23??ImageProcess\ImageProcess.vcxproj
?????文件???????2205??2014-09-15?20:23??ImageProcess\ImageProcess.vcxproj.filters
?????文件????????143??2014-09-15?20:07??ImageProcess\ImageProcess.vcxproj.user
?????文件???????6814??2014-09-25?17:00??ImageProcess\ImageProcessDlg.cpp
?????文件????????976??2014-09-25?16:53??ImageProcess\ImageProcessDlg.h
?????文件???????1510??2014-08-17?11:15??ImageProcess\OpenCVProperty.props
?????文件???????1107??2014-08-17?11:15??ImageProcess\OpenCVPropertyRelease.props
?????文件???????3108??2014-09-15?20:07??ImageProcess\ReadMe.txt
?????文件??????67777??2009-08-31?02:31??ImageProcess\res\ImageProcess.ico
?????文件????????680??2014-09-15?20:07??ImageProcess\res\ImageProcess.rc2
?????文件???????1830??2014-09-15?20:40??ImageProcess\resource.h
?????文件????????145??2014-09-15?20:07??ImageProcess\stdafx.cpp
?????文件???????1632??2014-09-15?20:07??ImageProcess\stdafx.h
?????文件????????234??2014-09-15?20:07??ImageProcess\targetver.h
?????文件???????1580??2014-08-17?11:15??ImageProcess\Track.h
?????目錄??????????0??2014-09-27?19:49??ImageProcess\res
?????目錄??????????0??2014-09-27?19:54??ImageProcess
-----------?---------??----------?-----??----
?????????????75691619????????????????????26
評論
共有 條評論