【issue-halcon例程学习】lines_gauss.hdev

例程功能

代码如下

复制代码
dev_close_window ()
read_image (Angio, 'angio-part')
get_image_size (Angio, Width, Height)
dev_open_window (0, 0, 3 * Width / 2, 3 * Height / 2, 'black', WindowID)
dev_display (Angio)
dev_set_color ('blue')
MaxLineWidth := 8
Contrast := 12
calculate_lines_gauss_parameters (MaxLineWidth, [Contrast,0], Sigma, Low, High)
lines_gauss (Angio, Lines, Sigma, Low, High, 'dark', 'true', 'parabolic', 'true')
count_obj (Lines, Number)
dev_update_pc ('off')
dev_update_var ('off')
for I := 1 to Number by 1
    select_obj (Lines, Line, I)
    get_contour_xld (Line, Row, Col)
    get_contour_attrib_xld (Line, 'angle', Angle)
    get_contour_attrib_xld (Line, 'width_left', WidthL)
    get_contour_attrib_xld (Line, 'width_right', WidthR)
    * To display the lines, the point at which the gray value drops to
    * 25% of the contrast between the line and the background will be
    * displayed.  This point is given by sqrt(3/4) for the parabolic
    * line model.
    RowR := Row + cos(Angle) * WidthR * sqrt(0.75)
    ColR := Col + sin(Angle) * WidthR * sqrt(0.75)
    RowL := Row - cos(Angle) * WidthL * sqrt(0.75)
    ColL := Col - sin(Angle) * WidthL * sqrt(0.75)
    dev_set_color ('red')
    dev_display (Line)
    dev_set_color ('green')
    disp_polygon (WindowID, RowL, ColL)
    disp_polygon (WindowID, RowR, ColR)
endfor

要求

  1. calculate_lines_gauss_parameters ------ 计算lines_gauss所需的参数SigmaLowHigh
    MaxLineWidth :入参,提取线的对比度。可传一个值,也可以用含两个值的数组作为参数传入,这样做第二个值决定了最小对比度,因此值必须比第一个值小;
    Sigma :出参,作为lines_gauss算子的入参;
    Low :出参,作为lines_gauss算子的入参;
    High :出参,作为lines_gauss算子的入参;
  2. lines_gauss ------ 检测线及其宽度;
    Image :入参,待检测图片;
    Lines :出参,作为lines_gauss算子的入参;
    Sigma :入参,高斯平滑参数;
    Low :入参,滞后阈值操作的下阈值;
    High :入参,滞后阈值操作的上阈值;
    LightDark :入参,决定提取亮线还是暗线('light'/'dark');
    ExtractWidth :入参,决定线宽是否被提取('true'/'false');
    LineModel :入参,优化线位置和宽度的模型;
    CompleteJunctions :入参,决定连接处是否补齐(猜的);
相关推荐
西岸行者3 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意3 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码3 天前
嵌入式学习路线
学习
毛小茛3 天前
计算机系统概论——校验码
学习
babe小鑫3 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms3 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下3 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。3 天前
2026.2.25监控学习
学习
im_AMBER3 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J3 天前
从“Hello World“ 开始 C++
c语言·c++·学习