您当前的位置: 首页 >  图像处理

Better Bench

暂无认证

  • 2浏览

    0关注

    695博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【图像处理】halcon实现图像亚像素边缘轮廓坐标提取并存储

Better Bench 发布时间:2021-11-30 10:17:17 ,浏览量:2

目录
  • 相关链接
  • 1 halcon简要指导
  • 2 实现

相关链接

(1)【2021 亚太杯数学建模】赛题A-Image Edge Analysis and application图像边缘分析与应用 赛题思路解析及实现 (2)电脑浏览器打开:betterbench.top/#/46/detail

1 halcon简要指导

在这里插入图片描述

2 实现

对不同的轮廓进行提取,并计算X、Y坐标,并存储到txt文件中 【数据和代码下载】

*读取图片
read_image (Image, '1-2.jpg')
* 
* 关闭窗口
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
* 
* Segment a region containing the edges
*基于全局阈值的图像快速阈值化
fast_threshold (Image, Region, 0, 120, 7)
*获取一个边界区域
boundary (Region, RegionBorder, 'inner')

*用圆形结构元素扩张一个区域。
dilation_circle (RegionBorder, RegionDilation, 3.5)

*获得特定区域Region位置的图像
reduce_domain (Image, RegionDilation, ImageReduced)

*提取亚像素精密边缘轮廓
edges_sub_pix (ImageReduced, Edges, 'canny', 2, 20, 60)

* dev_display (Edges)
*计算个数,
count_obj (Edges, Number)

* 数字对应第几个轮廓,图2 检测出来总共有6个,图1只有一个轮廓.

* 计算第1个轮廓的坐标
select_obj(Edges,ObjectSelected1,1)
dev_display (ObjectSelected1)
get_contour_xld(ObjectSelected1,Row1,Col1)
* 存储坐标XY值到txt文件中
open_file('Img2_XY_contours_1.txt','output',FileHandle)
fwrite_string (FileHandle,Row1+','+Col1+'\n')
*计算第2个轮廓的坐标
select_obj(Edges,ObjectSelected2,2)
dev_display (ObjectSelected2)
get_contour_xld(ObjectSelected2,Row2,Col2)
open_file('Img2_XY_contours_2.txt','output',FileHandle)
fwrite_string (FileHandle,Row2+','+Col2+'\n')
*计算第3个轮廓的坐标
select_obj(Edges,ObjectSelected3,3)
dev_display (ObjectSelected3)
get_contour_xld(ObjectSelected3,Row3,Col3)
open_file('Img2_XY_contours_3.txt','output',FileHandle)
fwrite_string (FileHandle,Row3+','+Col3+'\n')
*计算第4个轮廓的坐标
select_obj(Edges,ObjectSelected4,4)
dev_display (ObjectSelected4)
get_contour_xld(ObjectSelected4,Row4,Col4)
open_file('Img2_XY_contours_4.txt','output',FileHandle)
fwrite_string (FileHandle,Row4+','+Col4+'\n')
*计算第5个轮廓的坐标
select_obj(Edges,ObjectSelected5,5)
dev_display (ObjectSelected5)
get_contour_xld(ObjectSelected5,Row5,Col5)
open_file('Img2_XY_contours_5.txt','output',FileHandle)
fwrite_string (FileHandle,Row5+','+Col5+'\n')
*计算第6个轮廓的坐标
select_obj(Edges,ObjectSelected6,6)
dev_display (ObjectSelected6)
get_contour_xld(ObjectSelected6,Row6,Col6)
open_file('Img2_XY_contours_6.txt','output',FileHandle)
fwrite_string (FileHandle,Row6+','+Col6+'\n')

在这里插入图片描述

关注
打赏
1665674626
查看更多评论
立即登录/注册

微信扫码登录

0.0495s