Halcon函数总结(七)

fast_threshold(Image : Region :MinGray,MaxGray,MinSize : )//快速阈值

select_shape_std(Regions : SelectedRegions :Shape,Percent : )  //选择指定形状的region

smallest_rectangle2(Regions : : : Row,Column,Phi,Length1,Length2)  //region的任意方向的外包矩形的信息

gen_rectangle2_contour_xld( : Rectangle :Row,Column,Phi,Length1,Length2 : ) //获得最小外包矩形的轮廓

参考例程:find_smd_fast.hdev(这个例程适合检测特定形状的物体)


======================================================================================

get_image_pointer1(Image : : : Pointer,Type,Width,Height)  //获取图像第一个通道的所有点、数据类型和矩阵尺寸

inspect_shape_model(Image : ModelImages,ModelRegions :NumLevels,Contrast : )  //检测一个形状模板的金字塔模型

create_shape_model(Template : : NumLevels,AngleStart,AngleExtent,AngleStep,Optimization,Metric,Contrast,MinContrast :ModelID)  //准备一个匹配的模型

get_shape_model_contours( :ModelContours : ModelID,Level : ) //获得指定等级形状模型的轮廓

find_shape_model(Image : : ModelID,AngleStart,AngleExtent,MinScore,NumMatches,MaxOverlap,SubPixel,NumLevels,Greediness :Row,Column,Angle,Score) //查找形状模型

vector_angle_to_rigid( : :Row1,Column1,Angle1,Row2,Column2,Angle2 :HomMat2D)  //待理解,应该是计算一个表明角度关系的矩阵

affine_trans_contour_xld(Contours : ContoursAffinTrans : HomMat2D : )   //任意角度匹配图像 //待理解,此算法可以提取出匹配到的轮廓

affine_trans_pixel( : :HomMat2D,Row,Col :RowTrans,ColTrans) //转换像素坐标??//待理解

clear_shape_model( : :ModelID : )  //为模型空间释放内存

find_scaled_shape_model(Image : : ModelID,AngleStart,AngleExtent,ScaleMin,ScaleMax,MinScore,NumMatches,MaxOverlap,SubPixel,NumLevels,Greediness :Row,Column,Angle,Scale,Score)  //在一张图像中查找缩放不变的最佳匹配

参考例程:first_example_shape_matching.hdev      multiple_objects.hdev (多目标检测)                  multiple_scales.hdev

======================================================================================

create_aniso_shape_model(Template : : NumLevels,AngleStart,AngleExtent,AngleStep,ScaleRMin,ScaleRMax,ScaleRStep,ScaleCMin,ScaleCMax,ScaleCStep,Optimization,Metric,Contrast,MinContrast :ModelID)  //创建一个缩放不变性的匹配模型

dev_display_shape_matching_results( : :ModelID,Color,Row,Column,Angle,ScaleR,ScaleC,Model : )  //显示基于基本形状匹配的结果

clear_all_shape_models( : : : )  //清除所有的模型

参考例程:matching_multi_channel_clamp.hdev (适合机械手抓取零件)

======================================================================================

optical_flow_mg(Image1,Image2 :VectorField :Algorithm,SmoothingSigma,IntegrationSigma,FlowSmoothness,GradientConstancy,MGParamName,MGParamValue : )  //光流法跟踪两张图片的运动物体

 vector_field_length(VectorField : Length : Mode : )  //计算指定模式的向量长度

min_max_gray(Regions, Image : : Percent : Min, Max, Range) //确定Region中的最大和最小的灰度值

intersection(Region1, Region2 : RegionIntersection : : ) //计算两个region的交叉点

intensity(Regions, Image : : : Mean, Deviation)  //为灰度值图像计算平局值和偏差

参考例程:optical_flow.hdev   optical_flow_bic.hdev(待理解

=======================================================================================

zoom_image_factor(Image : ImageZoomed :ScaleWidth,ScaleHeight,Interpolation : )  //根据给定的因子缩放一张图片

gen_contour_polygon_xld( :Contour :Row,Col : )  //创建多边形轮廓

gen_region_contour_xld(Contour : Region :Mode : )  //从指定的轮廓数据得到感兴趣区域

参考例程:optical_flow_bicycle.hdev

 =======================================================================================

add_channels(Regions, Image : GrayRegions : : )  //将图像中是像素值(包括多通道)打印到region中

set_offset_template( : : TemplateID, GrayOffset : )  //设置模板的灰度值偏移

参考例程:pattern.hdev       pm_illu.hdev     pm_illu_rectify.hdev     pm_illu_rot.hdev(模式匹配)

 

 

这段代码使用了Open3D库读取了一个点云数据文件,并进行了离群点去除操作。具体来说,代码的执行过程如下: 1. `pcd = o3d.io.read_point_cloud("./data/pcd/000007.pcd",remove_nan_points = True,remove_infinite_points = True)`:读取一个PCD文件,并将其中的NaN和无穷大数据点删除。这里的 `pcd` 对象是一个Open3D库提供的点云数据类型对象。 2. `print('原始点云个数是:',np.array(pcd.points).shape[0])`:输出读入点云数据后点云中的点数。 3. `o3d.visualization.draw_geometries([pcd])`:可视化显示原始点云数据。 4. `cl,index = pcd.remove_statistical_outlier(nb_neighbors = 50,std_ratio= 1.0)`:对点云数据进行统计学离群点去除,其中 `nb_neighbors` 是指每个点的邻域内点的数量,`std_ratio` 是指点云中的离群点与正常点在统计学上的区别。`remove_statistical_outlier` 函数返回两个对象:`cl` 是 `o3d.geometry.PointCloud` 类型的点云对象,其中被认定为离群点的点已被删除;`index` 是一个列表,其中包含未被删除的点的下标。 5. `new_cloud = pcd.select_by_index(index)`:根据上一步中得到的未被删除的点的下标,从原始点云数据中选取这些点,得到一个新的点云对象 `new_cloud`。 6. `o3d.visualization.draw_geometries([new_cloud])`:可视化显示去除离群点后的点云数据。 最终,这段代码的作用是读取一个点云文件,去除其中的离群点,并可视化显示去除离群点后的点云数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值