Halcon缺陷检测:6、根据不同角度打光恢复图片的梯亮度

 

dev_close_window ()
dev_update_off ()
dev_open_window (0, 0, 640, 512, 'black', WindowHandle)
stop()
* 读取四张图片
read_image (Image, 'C:/Users/Administrator/Desktop/lcd(2)/shampoo_label_0'+[1:4])
for Index := 1 to 4 by 1
    stop()
    * 取出Image中一个 从1开始
    select_obj (Image, ObjectSelected, Index)
    * 显示图像
    dev_display (ObjectSelected)
    * 等待1s
    * 亿 兆 京
    wait_seconds (1)
endfor
*****************************************************************************************************
* Halcon用于光度立体视觉的算子 用于从多张不同光照条件下的图像恢复物体的表面的法向量 高度场、反射率图像
* HeightField 高度场
* Gradient 法向量
* Albedo 反射率
* 物像里的光照方向
*第五个参数:Slants(倾斜角)定义:光源方向与物体表面法向量的夹角(范围:0° 到 90°)。
 *0° 表示光源垂直于表面(正上方照射)。
 *90° 表示光源与表面平行(无直接照射)。
*你的数据:[41.4, 42.6, 41.7, 40.9] 表示所有光源的倾斜角均在 40°~43° 之间,说明光源是斜射的。
 
 *第六个参数:Tilts(方位角 定义:光源在物体表面平面(XY平面)的投影与 X 轴的夹角(范围:-180° 到 180° 或 0° 到 360°)。
*0° 表示光源沿 X 轴正方向照射。
*90° 表示光源沿 Y 轴正方向照射。
*你的数据:[6.1, 95.0, -176.1, -86.8] 表示四个光源分别从不同水平方向照射(如右、前、左、后)。
Tilts := [6.1,95.0,-176.1,-86.8]
* 光源和物体之间的角度
Slants := [41.4,42.6,41.7,40.9]
* 第七个参数:返回的结果
ResultType := ['gradient','albedo']
photometric_stereo (Image, HeightField, Gradient, Albedo, Slants, Tilts, 'all', 'poisson', [], [])
*****************************************************************************************************
* 展示反射图
dev_display (Albedo)
stop()
* 计算法向量导数的算子 用于分析梯度长的局部特性 使用梯度场计算物体表面高斯曲率 缺陷在曲率图中更为明显
derivate_vector_field (Gradient, Result, 1, 'mean_curvature')
dev_display (Result)
threshold (Result, Region, -0.2, -0.06)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 50, 99999)
shape_trans (SelectedRegions, RegionTrans, 'outer_circle')// 转成其他形状
dev_set_draw ('margin')
dev_display (Albedo)
dev_display (SelectedRegions)
dev_display (RegionTrans)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值