資源簡介
基于OPencv的相機操作代碼,包含了MFC界面程序!
代碼片段和文件信息
#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.GetImage();
if(?img?)
{
CopyOf(?img?desired_color?);
}
}
#define?HG_IS_IMAGE(img)\
((img)?!=?0?&&?((const?IplImage*)(img))->nSize?==?sizeof(IplImage)?&&\
((IplImage*)img)->imageDat
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-06-30?15:16??Vision_CV_MFC\
?????目錄???????????0??2016-06-30?17:12??Vision_CV_MFC\Debug\
?????文件??????208384??2016-07-06?18:57??Vision_CV_MFC\Debug\Vision_CV_MFC.exe
?????文件?????1448420??2016-07-06?18:57??Vision_CV_MFC\Debug\Vision_CV_MFC.ilk
?????文件?????7097344??2016-07-06?18:57??Vision_CV_MFC\Debug\Vision_CV_MFC.pdb
?????目錄???????????0??2016-07-01?09:56??Vision_CV_MFC\Vision_CV_MFC\
?????文件???????66374??2016-06-30?18:09??Vision_CV_MFC\Vision_CV_MFC\6-30-18-9-20.jpg
?????文件??????105201??2016-07-01?09:53??Vision_CV_MFC\Vision_CV_MFC\7-1-9-53-57.jpg
?????文件???????76098??2016-07-01?09:56??Vision_CV_MFC\Vision_CV_MFC\7-1-9-56-8.jpg
?????文件????????6547??2013-03-19?19:03??Vision_CV_MFC\Vision_CV_MFC\CvvImage.cpp
?????文件????????1925??2013-03-19?18:58??Vision_CV_MFC\Vision_CV_MFC\CvvImage.h
?????目錄???????????0??2016-07-06?18:57??Vision_CV_MFC\Vision_CV_MFC\Debug\
?????文件??????125070??2016-07-06?18:57??Vision_CV_MFC\Vision_CV_MFC\Debug\CL.read.1.tlog
?????文件????????3768??2016-07-06?18:57??Vision_CV_MFC\Vision_CV_MFC\Debug\CL.write.1.tlog
?????文件??????131849??2016-06-30?18:07??Vision_CV_MFC\Vision_CV_MFC\Debug\CvvImage.obj
?????文件?????????107??2016-06-30?17:10??Vision_CV_MFC\Vision_CV_MFC\Debug\Vision_CV_MFC.Build.CppClean.log
?????文件?????????667??2016-06-30?18:09??Vision_CV_MFC\Vision_CV_MFC\Debug\Vision_CV_MFC.exe.em
?????文件?????????732??2016-06-30?18:09??Vision_CV_MFC\Vision_CV_MFC\Debug\Vision_CV_MFC.exe.em
?????文件?????????381??2016-07-06?18:57??Vision_CV_MFC\Vision_CV_MFC\Debug\Vision_CV_MFC.exe.intermediate.manifest
?????文件?????????109??2016-07-06?18:57??Vision_CV_MFC\Vision_CV_MFC\Debug\Vision_CV_MFC.lastbuildstate
?????文件????????3560??2016-07-06?18:57??Vision_CV_MFC\Vision_CV_MFC\Debug\Vision_CV_MFC.log
?????文件??????159343??2016-06-30?18:07??Vision_CV_MFC\Vision_CV_MFC\Debug\Vision_CV_MFC.obj
?????文件????33751040??2016-06-30?18:07??Vision_CV_MFC\Vision_CV_MFC\Debug\Vision_CV_MFC.pch
?????文件???????69780??2016-06-30?18:09??Vision_CV_MFC\Vision_CV_MFC\Debug\Vision_CV_MFC.res
?????文件?????????713??2016-06-30?23:07??Vision_CV_MFC\Vision_CV_MFC\Debug\Vision_CV_MFC.vcxprojResolveAssemblyReference.cache
?????文件???????????0??2016-06-30?17:10??Vision_CV_MFC\Vision_CV_MFC\Debug\Vision_CV_MFC.write.1.tlog
?????文件??????198407??2016-07-06?18:57??Vision_CV_MFC\Vision_CV_MFC\Debug\Vision_CV_MFCDlg.obj
?????文件?????????216??2016-06-30?17:10??Vision_CV_MFC\Vision_CV_MFC\Debug\Vision_CV_MFC_manifest.rc
?????文件????????3550??2016-07-06?18:57??Vision_CV_MFC\Vision_CV_MFC\Debug\cl.command.1.tlog
?????文件???????????2??2016-07-06?18:57??Vision_CV_MFC\Vision_CV_MFC\Debug\li
?????文件???????????2??2016-07-06?18:57??Vision_CV_MFC\Vision_CV_MFC\Debug\li
............此處省略31個文件信息
評論
共有 條評論