如何在C++中将CWIMAQ对象转换为变量?



主要软件: LabWindows/CVI Add-ons>>Measurement Studio Vision Development Module
主要软件版本: N/A
主要软件修正版本: N/A
次要软件: N/A

问题: 我在Microsoft Visual C++中使用IMAQ Vision for ComponentWorks,当我尝试用CWIMAQVision.Add方法操作两幅图像时得到了一个错误.当我使用下列代码将图像与常数相加时,程序是可以正常工作的:
CWIMAQVision.Add (SourceImage, COleVariant(4.0), DestImage);
但当我尝试用相似的方法使两幅图像相加时却得到了一个错误。当我使用CWIMAQStructuringElement作为CWIMAQVision.Morphology的输入时也遇到了相似的问题。请问如何解决?

解答: CWIMAQVision.Add的第二个参数是变量,它可以是一个常数或一个IMAQ图像。您不能使用COleVariant (OperandImage)这样的函数作为参数,因为在变量的数据类型中并没有CWIMAQImage类型。您必须先将图像转换为DISPATCH变量类型使之成为变量。将两幅CWIMAQ图像(源图像和操作图像)相加的代码如下:
	VARIANT varImage;
varImage.vt = VT_DISPATCH;
varImage.pdispVal = (LPDISPATCH)OperandImage;
m_CWIMAQVision1.Add(SourceImage, varImage, DestImage);
第一行声明了一个名为varImage的变量。第二行说明了变量中的数据为DISPATCH变量类型,第三行将指针指向一幅CWIMAQ图像的转换对象.

要查阅更多Visual C++中关于类型转换的信息,请参照以下链接

相关链接: Microsoft Developer's Network

附件:





报告日期: 10/25/2006
最近更新: 10/26/2006
文档编号: 1XOELGL4