这个问题的现象是下面这句话报错,说是参数有问题:
HOperatorSet.SetFramegrabberParam(AcqHandle, "Gain", 2.0);
而在halcon中,连接相机后查阅参数,其中增益参数就叫Gain,这个是绝对没有写错的。
而这句话的设置时机放在了取得相机设备句柄之后。
HOperatorSet.OpenFramegrabber("HMV3rdParty", 0, 0, 0, 0, 0, 0, "progressive",
-1, "default", -1, "false", "default", serialNum, 0, -1, out AcqHandle);
HOperatorSet.SetFramegrabberParam(AcqHandle, "Gain", 2.0);
因此参数设置时机也是没有错的。
但是仍然有问题,这是为啥呢?
问了一下海康的技术,他说你试试把2.0改为2.0104试试。
结果还真是的。
后来在halcon连接相机后测试了一下,果然是这样的,因为拖动Gain滑块时,有些值是非法的,有些是可以的。
因此,这个问题的结论是:Gain的值不能随便设置,必须是特定的值。
之前看到这种问题的思路都集中在是不是参数名字拼写错误上面了,但其实对于本例来讲,是参数的值非法。
这个问题推广一下,其它其它的参数可能都存在这种问题。
所以在设置一些数值型参数时,我们都可以用halcon测试一下,看是不是存在有些值不能设置的现象,以避开这种问题。
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!

