- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
系统工程师测试题目结果:
开发环境:VC++6.0 OPENCV SQLserver2005
效果图片如下:
各部分说明如下:
循环显示所提供的图像,并设置读图像的间隔时间。
添加picture控件,用于显示图片。
在工程的设置中,添加OPENCV系统头文件的路径。
在CDahengApp::InitInstance()里添加语句SetTimer(NULL,1,5000,NULL);设置时间间隔为5s。
在CDahengDlg中添加消息WM_TIMER,在函数OnTimer()中填入如下内容:
int h;//h用于循环,将所用的图片放在某一个路径下,文件名为1.bmp,2.bmp。。。5.bmp
CString Open_Filename;
for (h=1;h6;h++)
{
switch (nIDEvent)
{
case 1:
{
char c[10]= ;
Open_Filename=D:\\系统工程师\\所用图片\\新建文件夹 (5)\\;
Open_Filename=Open_Filename+itoa(h,c,10);
Open_Filename=Open_Filename+.bmp;
IplImage* ipl = cvLoadImage(Open_Filename,-1); //读取图片,缓存到局部变量ipl中
if(!ipl)
return;
if(TheImage)//TheImage为IplImage*类型的变量
cvZero(TheImage);
ResizeImage(ipl);//对读入的图片进行缩放,使其宽或高最大值者刚好等于预设的大小,再复制到?TheImage?中
ShowImage(TheImage,IDC_picture);//显示图片,IDC_picture为picture控件的名称
SetTimer(1,5000,NULL); //定时,时间为5s
Invalidate(FALSE);
CDialog::OnTimer(1);//调用定时函数
cvReleaseImage(ipl);//释放ipl
break;
}
default:
break;
}
}
其中,函数 ResizeImage(ipl)和ShowImage(TheImage,IDC_picture)定义分别如下:
void CDahengDlg::ResizeImage(IplImage *img)
{
int w = img-width;
int h = img-height;
int max = (w h)?w: h; // 找出宽和高中的较大值者
float scale = (float) ( (float) max /500.0f );
float scale2 = (float) ( (float) max / 500.0f ); // 计算将图片缩放到TheImage区域所需的比例因子
int nw = (int)( w/scale );
int nh = (int)( h/scale2 ); // 缩放后图片的宽和高
int tlx = (nw nh)?0: (int)(256-nw)/2;
int tly = (nw nh)?(int)(256-nh)/2: 0; // 设置ROI 区域,用来存入图片 img
cvSetImageROI( TheImage, cvRect( tlx, tly, nw, nh) ); // 对图片 img 进行缩放,并存入到 TheImage 中
cvResize( img, TheImage );
cvResetImageROI( TheImage ); // 重置 TheImage 的 ROI 准备读入下一幅图片
void CDahengDlg::ShowImage(IplImage *img, UINT ID)
{
CDC* pDC = GetDlgItem( ID ) -GetDC(); // 获得显示控件的 DC
HDC hDC = pDC -GetSafeHdc(); // 获取 HDC(设备句柄) 来进行绘图操作
CRect rect;
GetDlgItem(ID) -GetClientRect( rect );
int rw = rect.right - rect.left;
文档评论(0)