資源簡介
MFC中使用OpenCV顯示選定文件夾中所有圖像文件,用戶可選擇指定文件夾,程序自動檢測文件夾中所有圖像文件,并逐個顯示出來。這里只是一個簡單的小程序,代碼可用于集成到更復雜的程序。

代碼片段和文件信息
#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();
??
??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)?&&?\
?((IplImag
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-11-12?12:07??MFC_OpencvTest1\
?????文件????????6546??2014-11-11?20:55??MFC_OpencvTest1\CvvImage.cpp
?????文件????????1536??2014-11-11?21:30??MFC_OpencvTest1\CvvImage.h
?????目錄???????????0??2014-11-12?12:08??MFC_OpencvTest1\Debug\
?????文件???????13190??2014-11-12?12:08??MFC_OpencvTest1\Debug\BuildLog.htm
?????文件??????140178??2014-11-12?09:34??MFC_OpencvTest1\Debug\CvvImage.obj
?????文件?????????920??2014-11-12?09:35??MFC_OpencvTest1\Debug\MFC_OpencvTest1.exe.em
?????文件?????????984??2014-11-12?09:35??MFC_OpencvTest1\Debug\MFC_OpencvTest1.exe.em
?????文件?????????861??2014-11-12?12:08??MFC_OpencvTest1\Debug\MFC_OpencvTest1.exe.intermediate.manifest
?????文件??????130850??2014-11-12?10:44??MFC_OpencvTest1\Debug\MFC_OpencvTest1.obj
?????文件????24903680??2014-11-12?09:34??MFC_OpencvTest1\Debug\MFC_OpencvTest1.pch
?????文件???????23648??2014-11-12?10:53??MFC_OpencvTest1\Debug\MFC_OpencvTest1.res
?????文件??????196612??2014-11-12?12:08??MFC_OpencvTest1\Debug\MFC_OpencvTest1Dlg.obj
?????文件??????????62??2014-11-12?12:08??MFC_OpencvTest1\Debug\mt.dep
?????文件??????466499??2014-11-12?09:34??MFC_OpencvTest1\Debug\stdafx.obj
?????文件?????1510400??2014-11-12?12:08??MFC_OpencvTest1\Debug\vc90.idb
?????文件?????3125248??2014-11-12?12:08??MFC_OpencvTest1\Debug\vc90.pdb
?????文件????????5552??2014-11-11?16:08??MFC_OpencvTest1\dirent.h
?????文件???????59496??2014-11-12?10:53??MFC_OpencvTest1\MFC_OpencvTest1.aps
?????文件????????2201??2014-11-10?20:10??MFC_OpencvTest1\MFC_OpencvTest1.cpp
?????文件?????????558??2014-11-10?20:10??MFC_OpencvTest1\MFC_OpencvTest1.h
?????文件????????5864??2014-11-12?10:53??MFC_OpencvTest1\MFC_OpencvTest1.rc
?????文件????????6479??2014-11-12?09:34??MFC_OpencvTest1\MFC_OpencvTest1.vcproj
?????文件????????1425??2014-11-12?13:46??MFC_OpencvTest1\MFC_OpencvTest1.vcproj.William-PC.William.user
?????文件???????12702??2014-11-12?12:07??MFC_OpencvTest1\MFC_OpencvTest1Dlg.cpp
?????文件????????2754??2014-11-12?10:44??MFC_OpencvTest1\MFC_OpencvTest1Dlg.h
?????文件????????4386??2014-11-10?20:10??MFC_OpencvTest1\ReadMe.txt
?????目錄???????????0??2014-11-10?20:11??MFC_OpencvTest1\res\
?????文件?????????825??2014-11-11?22:15??MFC_OpencvTest1\resource.h
?????文件???????21630??2003-07-23?16:52??MFC_OpencvTest1\res\MFC_OpencvTest1.ico
?????文件?????????406??2014-11-10?20:11??MFC_OpencvTest1\res\MFC_OpencvTest1.rc2
............此處省略3個文件信息
- 上一篇:mfc120d.dll 資源下載
- 下一篇:IEEE3機9節點模型
評論
共有 條評論