halcon提取桔子(橙子)

需求:从下列各张图片中提取出桔子

halcon提取桔子(橙子)_第1张图片

 halcon提取桔子(橙子)_第2张图片

 代码:

dev_set_draw ('margin')
dev_set_line_width (3)
read_image (Image, 'C:/Users/ASUS/Desktop/halcon/桔子图片/citrus_fruits_01.png')
*列出文件夹中所有图片
list_files ('C:/Users/ASUS/Desktop/halcon/桔子图片', ['files','follow_links','recursive'], ImageFiles)
*选择合适的元素
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
*通过循环提取每一张图片中的橘子
for Index := 0 to |ImageFiles|-1 by 1
    read_image (Image1, ImageFiles[Index])
    rgb1_to_gray (Image1, GrayImage)
    decompose3 (Image1, ImageR, ImageG, ImageB)
    threshold (ImageR, Regions, 40, 255)
    connection (Regions, ConnectedRegions)
    select_shape (ConnectedRegions, SelectedRegions, ['circularity','area'], 'and', [0.8,150], [1,99999])
    *显示图片
     dev_display(Image1)
    *显示所选区域
    dev_display(SelectedRegions)
endfor

效果展示:

halcon提取桔子(橙子)_第3张图片

halcon提取桔子(橙子)_第4张图片

halcon提取桔子(橙子)_第5张图片

halcon提取桔子(橙子)_第6张图片

 解释

        1.为什么在红色通道(左)上进行阈值分割?因为图片背景偏靛蓝,若直接在原图转灰度的图像(右)上阈值分割,个别图片效果不好,如下图所示:

                               halcon提取桔子(橙子)_第7张图片                              halcon提取桔子(橙子)_第8张图片

        2.图片素材:halcon桔子提取图片素材-互联网文档类资源-CSDN下载

你可能感兴趣的:(halcon图像处理,计算机视觉,图像处理,人工智能)