在Halcon软件中使用default连接方式读取到的摄像头图片分辨率是摄像头的最低分辨率,因此需要调整摄像头读取图片的分辨率来获取到高清图片,供后续的图片处理过程,尝试过不同的算子和设置参数方法都获取不到想要的高分辨率图片,后经测试是需要设置连接参数中的相机类型即可,具体步骤如下:
一、打开【助手】菜单,选择【Image Acquisition 01】菜单,打开图像采集设置界面。
二、在图像采集界面进行如下设置:
1、点击【资源】标签、点击【自动检测接口(t)】按钮进行摄像头连接检测。检测之前请保证摄像头已经连接到你的电脑。
2、点击【连接】标签、在【相机类型】下拉选项默认文本为【default】,需要自定义选择下拉列表中的高分辨率,之后点击【连接】按钮跟摄像头进行连接,再点击【采集(S)】按钮即可获取到对应分高辨率的图片。
3、点击【参数】标签、可以自定义设置常见的【亮度】【对比度】【饱和度】【模糊度】等各种图像抓取参数。
4、点击【代码生成】标签、点击【插入代码】按钮,可以在主界面中生成所有参数设置对应的代码,根据项目需要,可以导出为C++代码。
参数设置代码如下:
* Image Acquisition 01: Code generated by Image Acquisition 01
* Image Acquisition 01: Attention: The initialization may fail in case parameters need to
* Image Acquisition 01: be set in a specific order (e.g., image resolution vs. offset).
open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', '[0] yuv (2592x1944)', '[0] USB Camera', 0, -1, AcqHandle)
set_framegrabber_param (AcqHandle, 'grab_timeout', 5001)
set_framegrabber_param (AcqHandle, 'brightness', 12)
set_framegrabber_param (AcqHandle, 'contrast', 52)
set_framegrabber_param (AcqHandle, 'hue', 2)
set_framegrabber_param (AcqHandle, 'saturation', 71)
set_framegrabber_param (AcqHandle, 'sharpness', 57)
set_framegrabber_param (AcqHandle, 'gamma', 302)
set_framegrabber_param (AcqHandle, 'white_balance', 4670)
set_framegrabber_param (AcqHandle, 'frame_rate', 15.0)
set_framegrabber_param (AcqHandle, 'pan', 7)
set_framegrabber_param (AcqHandle, 'tilt', 7)
set_framegrabber_param (AcqHandle, 'roll', 1)
set_framegrabber_param (AcqHandle, 'zoom', 1)
set_framegrabber_param (AcqHandle, 'exposure', -4)
set_framegrabber_param (AcqHandle, 'focus', 75)
grab_image_start (AcqHandle, -1)
while (true)
grab_image_async (Image, AcqHandle, -1)
* Image Acquisition 01: Do something
endwhile
close_framegrabber (AcqHandle)