資源簡介
MFC OpenCV 顯示圖像,VS2013 寫的,比較新,添加CvvImage類來顯示程序,我用的是VS2013 + OPENCV2.4.9 , 只要版本不太老,估計都可以的。
代碼片段和文件信息
#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*)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-10-24?16:32??Fringe?打開圖片顯示\
?????目錄???????????0??2017-10-24?16:31??Fringe?打開圖片顯示\Debug\
?????文件??????216064??2017-10-18?16:27??Fringe?打開圖片顯示\Debug\Fringe.exe
?????文件?????1382164??2017-10-18?16:27??Fringe?打開圖片顯示\Debug\Fringe.ilk
?????文件?????8835072??2017-10-18?16:27??Fringe?打開圖片顯示\Debug\Fringe.pdb
?????目錄???????????0??2017-10-24?16:33??Fringe?打開圖片顯示\Fringe\
?????文件????????6538??2017-07-10?17:13??Fringe?打開圖片顯示\Fringe\CvvImage.cpp
?????文件????????1937??2017-07-10?17:13??Fringe?打開圖片顯示\Fringe\CvvImage.h
?????目錄???????????0??2017-10-24?16:31??Fringe?打開圖片顯示\Fringe\Debug\
?????文件??????269106??2017-10-18?16:27??Fringe?打開圖片顯示\Fringe\Debug\CvvImage.obj
?????文件????????1816??2017-07-10?20:33??Fringe?打開圖片顯示\Fringe\Debug\Fringe.Build.CppClean.log
?????文件?????????488??2017-10-24?09:21??Fringe?打開圖片顯示\Fringe\Debug\Fringe.log
?????文件??????286840??2017-10-18?16:27??Fringe?打開圖片顯示\Fringe\Debug\Fringe.obj
?????文件????50921472??2017-10-18?16:27??Fringe?打開圖片顯示\Fringe\Debug\Fringe.pch
?????文件???????69260??2017-10-18?16:27??Fringe?打開圖片顯示\Fringe\Debug\Fringe.res
?????目錄???????????0??2017-10-24?16:31??Fringe?打開圖片顯示\Fringe\Debug\Fringe.tlog\
?????文件??????122104??2017-10-24?09:02??Fringe?打開圖片顯示\Fringe\Debug\Fringe.tlog\CL.read.1.tlog
?????文件????????2306??2017-10-24?09:21??Fringe?打開圖片顯示\Fringe\Debug\Fringe.tlog\CL.write.1.tlog
?????文件?????????190??2017-10-24?09:21??Fringe?打開圖片顯示\Fringe\Debug\Fringe.tlog\Fringe.lastbuildstate
?????文件???????11746??2017-10-18?16:27??Fringe?打開圖片顯示\Fringe\Debug\Fringe.tlog\cl.command.1.tlog
?????文件???????13736??2017-10-18?16:27??Fringe?打開圖片顯示\Fringe\Debug\Fringe.tlog\li
?????文件????????9910??2017-10-24?09:02??Fringe?打開圖片顯示\Fringe\Debug\Fringe.tlog\li
?????文件?????????796??2017-10-24?09:21??Fringe?打開圖片顯示\Fringe\Debug\Fringe.tlog\li
?????文件????????2462??2017-10-18?16:27??Fringe?打開圖片顯示\Fringe\Debug\Fringe.tlog\rc.command.1.tlog
?????文件????????2928??2017-10-24?09:02??Fringe?打開圖片顯示\Fringe\Debug\Fringe.tlog\rc.read.1.tlog
?????文件?????????198??2017-10-24?09:02??Fringe?打開圖片顯示\Fringe\Debug\Fringe.tlog\rc.write.1.tlog
?????文件??????345278??2017-10-18?16:27??Fringe?打開圖片顯示\Fringe\Debug\FringeDlg.obj
?????文件??????917071??2017-10-18?16:27??Fringe?打開圖片顯示\Fringe\Debug\stdafx.obj
?????文件?????5540864??2017-10-18?16:27??Fringe?打開圖片顯示\Fringe\Debug\vc120.idb
?????文件?????8351744??2017-10-18?16:27??Fringe?打開圖片顯示\Fringe\Debug\vc120.pdb
?????文件??????107832??2017-10-24?10:32??Fringe?打開圖片顯示\Fringe\Fringe.aps
............此處省略18個文件信息
評論
共有 條評論