Halcon 函数分类

分类: Halcon学习 |
Halcon学习之一:查询图像参数
1、get_grayval
2、get_image_pointer1
3、get_image_pointer3
PointerBlue,
4、get_image_pointer1_rect
VerticalPitch,
5、get_image_time
程序::
可以通过上述查看参数深入了解各个函数的具体意义。
-
dev_open_window
(0, 'black',0, 512, 512, Handle1) -
-
read_image
(Image, 'G:/Halcon/机器视觉/images/autobahn.png') -
-
get_grayval
(Image, 12, 66, Grayval) -
-
get_image_pointer1
(Image, Pointer, Type, Width, Height) -
-
draw_region
(Region1, Handle1) -
-
reduce_domain
(Image, Region1, ImageReduced) -
-
get_image_pointer1_rect
(ImageReduced, PixelPointer, Width1, Height1, VerticalPitch, HorizontalBitPitch, BitsPerPixel) -
-
read_image
(Image1, 'G:/Halcon/机器视觉/images/claudia.png') -
-
get_image_pointer3
(Image1, PointerRed, PointerGreen, PointerBlue, Type1, Width2, Height2) -
-
get_image_time
(Image, MSecond, Second, Minute, Hour, Day, YDay, Month, Year)
注意:Image1必须是彩色图像。
Halcon学习之二:摄像头获取图像和相关参数
1、close_all_framegrabbers
2、close_framegrabber
3、open_framegrabber
VerticalResolution,
Field,
CameraType,
参数信息:
4、grab_image
获取AcqHandle的图像采集设备的Image。
5、get_framegrabber_param
查询AcqHandle的图像采集设备的特殊参数
Param∈{name、port、revision、bits_per_channel,
6、info_framegrabber
查询指定的图像采集接口的信息。
Name为图像采集设备的名称
Query为需要查询的参数名称
Information是指输出的文本信息
ValueList为该图像采集接口的参数值。
7、grab_image_async
获取AcqHandle的图像采集设备的Image
当调用grab_image_async
-
//
Select a suitable image acquisition interface name AcqName -
open_framegrabber(AcqName,1,1,0,0,0,0,’default’,-1,’default’,-1.0,’default’,’default’,’default’,-1,-1,AcqHandle)
-
//
Grab image + start next grab -
grab_image_async(Image1,AcqHandle,-1.0)
-
//
Process Image1 ... -
//
Finish asynchronous grab + start next grab -
grab_image_async(Image2,AcqHandle,-1.0)
-
//
Process Image2 ... -
close_framegrabber(AcqHandle)
8、grab_image_start
只有当和grab_image_async
-
//
Select a suitable image acquisition interface name AcqName -
open_framegrabber(AcqName,1,1,0,0,0,0,’default’,-1,’default’,-1.0,
-
’default’,’default’,’default’,-1,-1,AcqHandle)
-
grab_image(Image1,AcqHandle)
-
//
Start next grab -
grab_image_start(AcqHandle,-1.0)
-
//
Process Image1 ... -
//
Finish asynchronous grab + start next grab -
grab_image_async(Image2,AcqHandle,-1.0)
-
//
Process Image2 ... -
close_framegrabber(AcqHandle)
9、get_framegrabber_lut
ImageBlue
10、grab_data
获取AcqHandle的图像采集设备获得的Image、预处理Region和预处理XLD轮廓Contours和预处理控制数据Data。
注意:该运算子不能支持所有的图像采集设备
11、grab_data_async
12、set_framegrabber_lut
13、set_framegrabber_param
-
close_all_framegrabbers
() -
open_framegrabber
( 'DahengCAM',1, 'default',1, -1, -1, 0, 0, -1, 'rgb',-1, 'false','default', 'default', -1, -1, AcqHandle) -
grab_image
(Image, AcqHandle) -
grab_image_async
(Image2, AcqHandle, -1) -
get_framegrabber_param
(AcqHandle, 'image_width',Value) -
info_framegrabber
( 'DirectFile','info_boards', Information, ValueList)
可以通过调试以上代码,并且查看相关变量的变化,更深入的了解函数的意义。
注意:在本段代码中,使用的是大恒的HV1303的工业摄像机,如果是使用一般的摄像头来采集数据的话,Name值可以设置为Direct_show。
Halcon学习之三:有关图像通道的函数
黑白摄像机会返回每个像素所对应的能量采用结果,这些结果组成了一幅单通道灰度值图像,而对于RGB彩色摄像机,它将返回每个像素所对应的三个采样结果,也就是一幅三通道图像。下面这些是与图像通道有关的函数:
1、access_channel
2、append_channel
3、channels_to_image
4、compose2
5、count_channels
计算MultiChannelImage
6、decompose2
将一幅二通道图像转换为两幅单通道图像。Decompose3、Decompose4以此类推。
7、image_to_channels
将多通道图像转换为多幅单通道图像。
相关例程为:
-
*
输入图像 -
read_image
(Image, 'G:/Halcon/机器视觉/images/claudia.png') -
*
计算图像的通道数 -
count_channels
(Image, Num) -
*
读取每个通道的图像 -
for
index := 1 to Num by 1 -
access_channel (Image, channel1, index) - endfor
-
decompose3
(Image, image1, image2, image3) -
compose2
(image3, image2, MultiChannelImage1) -
append_channel
(MultiChannelImage1, image3, ImageExtended)
相关处理结果为:
http://hi.csdn.net/attachment/201101/6/0_1294299645241O.gif函数分类" />
Halcon学习之四:有关图像生成的函数
1、copy_image
复制image图像
2、region_to_bin
将区域Region转换为一幅二进制图像BinImage。
ForegroundGray,
Width,
3、region_to_label
将区域Region转换为一幅Lable图像ImageLabel。
Type为imagelabel的类型。
Width,
4、region_to_mean
绘制ImageMean图像,将其灰度值设置为Regions和Image的平均灰度值。
相关例子:
-
*
读取图像 -
read_image
(Image, 'G:/Halcon/机器视觉/images/bin_switch/bin_switch_2.png') -
*
复制图像 -
copy_image
(Image, DupImage) -
*
区域生长算法 -
regiongrowing
(Image, Regions, 3, 3, 1, 100) -
*
生成ImageMean -
region_to_mean
(Regions, Image, ImageMean) -
*
将Region转换为二进制图像 -
region_to_bin
(Regions, BinImage, 255, 0, 512, 512) -
*
将Region转换为Label图像 -
region_to_label
(Regions, 'int4',ImageLabel, 512, 512)
实验结果:
http://hi.csdn.net/attachment/201101/6/0_1294303566G4J2.gif函数分类" />
Halcon学习之五:有关图像的定义域的函数
1、add_channels
将Image图像的灰度值赋给区域Regions,得到GrayRegions。
2、change_domain
改变Image图像的定义域
3、full_domain
扩张Image图像的定义域到最大。
4、get_domain
得到Image图像的定义域
5、rectangle1_domain
Column2
根据矩形坐标(Row1,
6、reduce_domain
得到图像Image相对于Region区域的图像
例程:
-
read_image
(Image, 'G:/Halcon/机器视觉/images/brycecanyon1.png') -
*
打开一个新的窗体 -
dev_open_window
(0, 'black',0, -1, -1, WindowHandle) -
*
显示图像 -
dev_display
(Image) -
*
选出两个新的Region -
draw_region
(region1, WindowHandle) -
draw_region
(region2, WindowHandle) -
add_channels
(region1, Image, image_region1) -
change_domain
(Image, region2, ImageNew) -
full_domain
(image_region1, ImageFull) -
rectangle1_domain
(ImageFull, ImageReduced, 100, 100, 300, 500) -
get_domain
(image_region1, Domain) -
reduce_domain
(Image, region2, ReducedImage)
处理效果如下图所示:
http://hi.csdn.net/attachment/201101/6/0_1294304437HTzn.gif函数分类" />
Halcon学习之六:获取Image图像中Region区域的特征参数
area_center_gray
cooc_feature_image
Correlation,
Homogeneity:灰度值的均匀性
Contrast:灰度值的对比度
cooc_feature_matrix
Homogeneity,
根据共生矩阵计算灰度特征值
elliptic_axis_gray
计算Image图像的Region区域的Ra,Rb和Phi。
entropy_gray
Image图像中Region区域的计算熵Entropy和各向异性Anisotropy。
estimate_noise
从单一图像
Sigma:加性噪声的标准偏差
Method
Method∈{foerstner、immerkaer、least_squares、mean}、
fit_surface_first_order
ClippingFactor
计算一阶灰度平面的灰度矩阵和灰度值的逼近参数。
Algorithm:采用的算法
Algorithm:迭代次数
ClippingFactor:消除临界值的削波系数
fit_surface_second_order
ClippingFactor
计算二阶灰度平面的灰度矩阵和灰度值的逼近参数。
fuzzy_entropy
确定区域Regions的模糊熵
Apar为模糊区域的起始点
Cpar为模糊区域的结束点
Entropy为Regions的模糊熵
fuzzy_perimeter
计算Region区域的模糊周长
gen_cooc_matrix
生成Image图像Region区域的共生矩阵
gray_histo
获取Image图像Region区域的灰度相对直方图RelativeHisto和绝对直方图AbsoluteHisto。
注意:Region区域必须先计算过它的直方图。
gray_histo_abs
获取Image图像Region区域的灰度绝对直方图AbsoluteHisto。
Quantization:灰度值的量化、
gray_projections
VertProjection
计算Region区域在水平方向和垂直方向的灰度值投影。
histo_2dim
计算二通道灰度图像的直方图
intensity
计算region区域的灰度平均值和偏差
min_max_gray
计算Region区域的最大最小灰度值。
Range:最大灰度值和最小灰度值之间的差距
moments_gray_plane
Mean
计算平面的灰度矩阵和灰度值的逼近参数。
plane_deviation
逼近的图象平面计算灰度值偏差
select_gray
Min,
根据灰度值选择区域
Features∈{area、row、column、ra、rb、phi、min、max、mean、deviation、plane_deviation、anisotropy、entropy、fuzzy_entropy、fuzzy_perimeter、moments_row、moments_column、alpha、beta}
Operation∈{and、or}
shape_histo_all
RelativeHisto
shape_histo_point
Column
获取阈值特征直方图
Feature∈{connected_components、convexity、compactness、anisometry、holes}
-
read_image
(Image, 'G:/Halcon/机器视觉/images/bin_switch/bin_switch_3.png') -
regiongrowing
(Image, Regions, 3, 3, 1, 500) -
area_center_gray
(Regions, Image, Area, Row, Column) -
cooc_feature_image
(Regions, Image, 6, 0, Energy, Correlation, Homogeneity, Contrast) -
elliptic_axis_gray
(Regions, Image, Ra, Rb, Phi) -
entropy_gray
(Regions, Image, Entropy, Anisotropy) -
estimate_noise
(Image, 'mean',20, Sigma) -
fit_surface_first_order
(Regions, 'regression',Image, 5, 2, Alpha, Beta, Gamma) -
fit_surface_second_order
(Regions, 'regression',Image, 5, 2, Alpha1, Beta1, Gamma1, Delta, Epsilon, Zeta) -
fuzzy_entropy
(Regions, Image, 0, 255, Entropy1) -
fuzzy_perimeter
(Regions, Image, 0, 255, Perimeter) -
gen_cooc_matrix
(Regions, Image, Matrix, 6, 0) -
dev_set_paint
( 'histogram') -
gray_projections
(Regions, 'simple',Image, HorProjection, VertProjection) -
histo_2dim
(Regions, Image, Image, Histo2Dim)
运行结果:
http://hi.csdn.net/attachment/201101/12/0_12948159239oL6.gif函数分类" />
Halcon学习之七:改变图像的现实方式和大小
change_format
改变Image图像大小,而且ImagePart图像为灰度值图像。
crop_domain
从Image图像中裁剪一个矩形区域。这个矩形的周长最小。
crop_domain_rel
删除相关区域,Top为顶端裁剪的行数,Left,Bottom,Right类似。
crop_part
删除一个矩形图像区域。Row为右上角的列标索引。Width,
crop_rectangle1
Column2
删除一个矩形图像区域。
tile_channels
将多通道图像平铺为一幅大的单通道图像。NumColumns为平铺的列数。TileOrder为平铺的方式。
tile_images
将多通道平铺。
程序:
-
read_image
(Image, 'G:/Halcon/机器视觉/images/brycecanyon1.png') -
get_image_pointer1
(Image, Pointer, Type, Width, Height) -
change_format
(Image, ImagePart, Width/2, Height/2) -
crop_domain
(Image, ImagePart1) -
crop_domain_rel
(ImagePart1, ImagePart2, -20, -20, -1, -1) -
crop_part
(ImagePart2, ImagePart3, 100, 100, Width, Height) -
crop_rectangle1
(ImagePart3, ImagePart4, 100, 100, 200, 200) -
tile_channels
(Image, 'horizontal')TiledImage, 2, -
tile_images
(Image, 'vertical')TiledImage1, 1, -
tile_images_offset
(Image, TiledImage2, 0, 0, 50, 50, -1, -1, Width, Height)
处理效果:
http://hi.csdn.net/attachment/201101/12/0_12948167050Sz0.gif函数分类" />
Halcon学习之八:图像区域叠加与绘制
overpaint_gray
将灰度值不相同区域用不同颜色绘制到ImageDestination中, ImageSource包含希望的灰度值图像
overpaint_region
将Region以一个恒定的灰度值绘制到Image图像中
paint_gray
将ImageSource的图像绘制到ImageDestination中,形成MixedImage。
paint_region
将Region以一个恒定的灰度值绘制到Image图像中
paint_xld
将XLD以一个恒定的灰度值绘制到Image图像中
set_grayval
设置Image图像中坐标为(Row,Column)的灰度值
程序:
-
read_image
(Image, 'G:/Halcon/images/images/claudia.png') -
gen_circle
(Circle, 200, 200, 100.5) -
reduce_domain
(Image, Circle, ImageReduced) -
gen_image_proto
(Image, ImageCleared, 32) -
overpaint_gray
(ImageCleared, ImageReduced) -
gen_image_const
(Image1, 'byte',512, 512) -
overpaint_region
(Image1, 'fill')Circle, 255, -
*
-
read_image
(Image2, 'G:/Halcon/images/images/brycecanyon1.png') -
paint_gray
(ImageReduced, Image2, MixedImage) -
*
-
read_image
(Image3, 'G:/Halcon/images/images/pads.png') -
gen_rectangle1
(Rectangle1, 30, 20, 100, 200) -
paint_region
(Rectangle1, 'fill')Image3, ImageResult, 255, -
*
-
*
-
copy_image
(Image2, image0) -
copy_image
(Image2, image1) -
compose3
(image0, Image2, image1, MultiChannelImage) -
*
-
threshold_sub_pix
(MultiChannelImage, Border, 128) -
*
-
circle
:= Border[14] -
arrow
:= Border[16] -
ObjectsConcat
:= [circle,arrow] -
*
-
paint_xld
(ObjectsConcat, MultiChannelImage, ImageResult1, [0,1,0,1,1,255])
处理效果:
http://hi.csdn.net/attachment/201101/12/0_1294818405guk3.gif函数分类" />