3、图像获取(文件、相机)
- 读取单张图片:
read_image (Image, 'C:/Jellyfish.jpg')
注:Halcon表示路径的方法更window是表示的不太一样,Halcon用这个 / 分割 ,而windows是用 \
注:读入单张图片也可以直接把图片拖拽到HDevelop中,它会自动生成代码。
- 读入一组图片
方式一:
*创建一个路径数组
ImagePath:=[]
ImagePath[0]:='C:/图片/1.jpg'
ImagePath[1]:='C:/图片/2.jpg'
ImagePath[2]:='C:/图片/3.jpg'
for i := 0 to 2 by 1
read_image (Image,ImagePath[i] )
endfor
方式二:
for i := 1 to 3 by 1
read_image (Image,'C:/图片/' + i + '.jpg' )
endfor
list_files ('C:/图片', ['files','directories', 'recursive','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles,
['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1
read_image (Image, ImageFiles[Index])
'directories':指定的搜索格式为文件夹(文件夹也当作一个路径选择)
(2)、tuple_regexp_select算子表示对ImageFiles路径中文件进行筛选,第二个参数表示入选的格式,
实时显示后即表示相机可以正常取像,这时也可以修改一些相机的相应参数,如显示rgb彩色图还是灰色图等。
grab_image_start (AcqHandle, -1)
(2)、在"参数"选项中打开触发模式,并把曝光时间调大(是图像更加明亮便于观察)
(3)、把时间限制(timeout)调大哦,防止过久没出发抛出错误。
set_framegrabber_param (AcqHandle, 'TriggerMode', 'On')
set_framegrabber_param (AcqHandle, 'ExposureTimeAbs', 500.0)
set_framegrabber_param (AcqHandle, 'grab_timeout', 10000)
grab_image_start (AcqHandle, -1)
grab_image_async (Image, AcqHandle, -1)
close_framegrabber (AcqHandle)
索引其实就是一个后缀名为.seq的文件。其文件中存放的就是一些图片的路径。可以通过txt文本建立并输入路径后在修改txt文档的后缀名为seq
打开获取图像的助手,选择接口为File,并插入代码并ba代码中的第十三个参数修改为索引表(.seq)的路径
grab_image_start (AcqHandle, -1)
grab_image_async (Image, AcqHandle, -1)