Halcon图像拆分与重置灰度值

了解一下Halcon图像的拆分(fill_interlace)与重置灰度值(set_grayval)

图像拆分多数时候搭配光源分时频闪进行工作。多用于缺陷检测,分时频闪,是一种特殊的线阵扫描方式。 区别于传统线阵扫描的恒定照明方式,分时频闪控制器在线阵相机每采集一行图像时切换光源的种类或亮度,使得多种光源成像有序地间隔排列在图像中。采集完成后对原始图像进行拆分重组,即可在一次扫描中获得多种光源效果图像,从而降低成本,提高兼容性,获得最佳成像效果。

由于实际项目的保密性,现在手动在一张空白图像上通过重置灰度值来模拟分时频闪相机采集图像。

read_image (Image33, 'E:/Halcon数据/资源图片/33.png')
get_image_size (Image33, Width, Height)

重置灰度值模拟图像

for Index := 0 to Height-1 by 4
    for Index1 := 0 to Width-1 by 1     
        set_grayval (Image33, Index, Index1, 10) 
    endfor
endfor
for Index := 1 to Height-1 by 4
    for Index1 := 0 to Width-1 by 1
       set_grayval (Image33, Index, Index1, 90) 
    endfor
endfor
for Index := 2 to Height-1 by 4
    for Index1 := 0 to Width-1 by 1
       set_grayval (Image33, Index, Index1, 180) 
    endfor
endfor

模拟图像效果展示

局部放大效果

通过fill_interlace对图像进行拆分

rgb1_to_gray (Image33, GrayImage)
fill_interlace (GrayImage, Image_2N, 'rmodd')

拆分结果

局部放大

*提取2N+1行
fill_interlace (GrayImage, Image_2N_1, 'rmeven')

局部放大效果

*提取4N行
fill_interlace (Image_2N, Image_4N, 'rmodd')

*提取4N+1行
fill_interlace (Image_2N_1, Image_4N_1, 'rmodd')

*提取4N+2行
fill_interlace (Image_2N, Image_4N_2, 'rmeven')

*提取4N+3行
fill_interlace (Image_2N_1, Image_4N_3, 'rmeven')

从4N-到4N-3,对应的灰度值依次为10,90,180,255,对应上面填充效果。

Halcon是一个专业的机器视觉软件,它提供了强大的图像处理和分析功能。在Halcon中获取图像像素点的灰度值可以通过以下步骤来实现: 1. 首先需要读取图像Halcon中,这可以通过`read_image`函数完成。 2. 然后需要将图像窗口和对应的图像变量关联起来,这可以通过`open_window`和`dev_display`函数完成。 3. 接下来,可以通过`get_image_size`函数获取图像的宽度和高度。 4. 最后,使用`get_image`函数可以获取指定窗口中的图像数据,包括每个像素点的灰度值。需要指定窗口句柄、图像通道和感兴趣区域。 以下是一个简单的Halcon脚本示例,展示了如何获取图像中特定像素点的灰度值: ```halcon read_image(Image, 'path_to_image_file') // 读取图像文件到Image变量 open_window(0, 512, 512, 'black', WindowHandle) // 创建一个窗口,并获得窗口句柄WindowHandle dev_display(Image) // 在窗口中显示图像 get_image_size(Image, Width, Height) // 获取图像的宽度和高度 get_image(WindowHandle, Image, ImageRegion) // 从窗口中获取图像数据到ImageRegion变量 // 假设我们要获取坐标为(X, Y)的像素点的灰度值 X := 100 Y := 100 Row := Y Column := X get_region_points(ImageRegion, [Row], [Column], PixelVal) // 获取特定像素点的灰度值 write_string(WindowHandle, '灰度值: ' + PixelVal) // 在窗口中显示像素点的灰度值 ``` 请注意,这个示例中的'path_to_image_file'需要替换为实际的图像文件路径。另外,获取单个像素点的灰度值可以通过指定特定的行和列来完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值