人脸识别程序以及机器视觉研究内容和发展方向4.docx

上传人:b****6 文档编号:5288735 上传时间:2022-12-14 格式:DOCX 页数:12 大小:333.94KB
下载 相关 举报
人脸识别程序以及机器视觉研究内容和发展方向4.docx_第1页
第1页 / 共12页
人脸识别程序以及机器视觉研究内容和发展方向4.docx_第2页
第2页 / 共12页
人脸识别程序以及机器视觉研究内容和发展方向4.docx_第3页
第3页 / 共12页
人脸识别程序以及机器视觉研究内容和发展方向4.docx_第4页
第4页 / 共12页
人脸识别程序以及机器视觉研究内容和发展方向4.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

人脸识别程序以及机器视觉研究内容和发展方向4.docx

《人脸识别程序以及机器视觉研究内容和发展方向4.docx》由会员分享,可在线阅读,更多相关《人脸识别程序以及机器视觉研究内容和发展方向4.docx(12页珍藏版)》请在冰豆网上搜索。

人脸识别程序以及机器视觉研究内容和发展方向4.docx

人脸识别程序以及机器视觉研究内容和发展方向4

LabWindows实验报告

姓名:

张旭学号:

0905104116专业:

光电信息工程

实验四:

LabWindows用户界面编程

一、实验要求

1、熟悉仪器面板、控件的属性含义及设置;

2、在编程时,能够熟练使用仪器面板的库函数;

二、实验内容

编写一个如下图所示的函数发生器,也可以设计成其它应用程序界面。

 

3、实验仪器

计算机一台,装有LabWindows

4、实验步骤

步骤1:

根据设计要求,设计如上图所示的用户界面,其具体控件属性设置如下表所示。

控件类型

ConstantName

属性设置

面板Panel

PANEL

命令按钮

CommandButton

QUITBUTTON

CallbackFunction

QuitCallback

Lable

__Quit

曲线图控件

Graph

GRAPH1

ControlMode

Indicator

DataMode

Retain

Lable

波形显示

下拉列表控件

Ring

WAVEFORM

CallbackFunction

WaveFormChooseCB

Label

波形选择

Label/ValuePairs

Label

Value

0

正弦波

1

三角波

2

锯齿波

3

方波

4

步骤2:

生成代码框架。

选择Code→Generate→AllCode,生成代码框架,接着添加自定义函数show_wave进行显示。

/*下拉列表控件“波形选择”对应的回调函数*/

intCVICALLBACKWaveFormChooseCB(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

switch(event)

{

caseEVENT_COMMIT:

show_wave();

break;

}

return0;

}

然后,在函数show_wave内添加如下代码。

voidshow_wave(void)

{

intwaveForm;/*波形选择变量*/

doubleample=5.0;/*幅度*/

doublephase=0.0,waveData[POINTS];/*相位和波形数据变量*/

doublesampleRate=10000.0,freq=100.0;/*采样率和频率变量*/

GetCtrlVal(panelHandle,PANEL_WAVEFORM,&waveForm);

switch(waveForm)

{

case0:

/*无波形,即清除所画曲线*/

DeleteGraphPlot(panelHandle,PANEL_GRAPH1,-1,VAL_IMMEDIATE_DRAW);

break;

case1:

/*正弦波*/

SineWave(POINTS,ample,freq/sampleRate,&phase,waveData);

break;

case2:

/*三角波*/

TriangleWave(POINTS,ample,freq/sampleRate,&phase,waveData);

break;

case3:

/*锯齿波*/

SawtoothWave(POINTS,ample,freq/sampleRate,&phase,waveData);

break;

case4:

/*方波*/

SquareWave(POINTS,ample,freq/sampleRate,&phase,50.0,waveData);

break;

}

if(waveform)/*先判断是否选择了波形*/

{

DeleteGraphPlot(panelHandle,PANEL_GRAPH1,-1,VAL_IMMEDIATE_DRAW);

PlotWaveform(panelHandle,PANEL_GRAPH1,waveData,POINTS,VAL_DOUBLE,1.0,0.0,0.0,1.0/sampleRate,VAL_THIN_LINE,VAL_EMPTY_SQUARE,VAL_SOLID,1,VAL_RED);/*画出波形*/

}

}

代码中的函数意义及调用方法如下

1、函数DeleteGraphPlot清除所画曲线,调用路径为:

Library→UerInterfaceLibrary→Controls/Graphs/StripCharts….→GraphsandStirpCharts→DeleteGraphPlot

其参数设置见图1。

 

图1DeleteGraphPlot函数面板

2、函数SineWave,TriangleWave,SawtoothWave,SquareWave分别为正弦波,三角波,锯齿波和方波生成函数。

它们都在Library→AdvancedAnalysisLibrary→SignalGeneration目录下获得,其参数设置如图2~图5所示。

3、函数PlotWaveform,画曲线图函数,调用路径为:

Library→UerInterfaceLibrary→Controls/Graphs/StripCharts….→GraphsandStirpCharts→PlotWaveform,其参数设置见图6。

 

图2正弦波生成函数面板

图3三角波生成函数面板

图4锯齿波生成函数面板

图5方波生成函数面板

图6PlotWaveform函数面板

步骤3:

运行程序。

选择Run→Debugex1_dbg.exe。

5、关键代码及注释

#include

#include

#include

#include"myhanshu.h"

#definePOINTS512

staticintpanelHandle;

intmain(intargc,char*argv[])

{

if(InitCVIRTE(0,argv,0)==0)

return-1;/*outofmemory*/

if((panelHandle=LoadPanel(0,"myhanshu.uir",PANEL))<0)

return-1;

DisplayPanel(panelHandle);

RunUserInterface();

DiscardPanel(panelHandle);

return0;

}

voidshow_wave(void)

{

intwaveForm;/*波形选择变量*/

doubleample=5.0;/*幅度*/

doublephase=0.0,waveData[POINTS];/*相位和波形数据变量*/

doublesampleRate=10000.0,freq=100.0;/*采样率和频率变量*/

GetCtrlVal(panelHandle,PANEL_WAVEFORM,&waveForm);

switch(waveForm)

{

case0:

DeleteGraphPlot(panelHandle,PANEL_GRAPH1,-1,VAL_IMMEDIATE_DRAW);break;

case1:

SineWave(POINTS,ample,freq/sampleRate,&phase,waveData);break;

case2:

TriangleWave(POINTS,ample,freq/sampleRate,&phase,waveData);break;

case3:

SawtoothWave(POINTS,ample,freq/sampleRate,&phase,waveData);break;

case4:

SquareWave(POINTS,ample,freq/sampleRate,&phase,50.0,waveData);break;

}

if(waveForm)/*先判断是否选择了波形*/

{

DeleteGraphPlot(panelHandle,PANEL_GRAPH1,-1,VAL_IMMEDIATE_DRAW);

PlotWaveform(panelHandle,PANEL_GRAPH1,waveData,POINTS,VAL_DOUBLE,1.0,0.0,0.0,1.0/sampleRate,VAL_THIN_LINE,VAL_EMPTY_SQUARE,VAL_SOLID,1,VAL_RED);/*画出波形*/

}

}

intCVICALLBACKQuitCallback(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

switch(event)

{

caseEVENT_COMMIT:

QuitUserInterface(0);

break;

}

return0;

}

//“波形选择”对应的回调函数

intCVICALLBACKWaveFormChooseCB(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

switch(event)

{

caseEVENT_COMMIT:

show_wave();

break;

}

return0;

}

6、实验结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1