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

Posted Better Bench

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像处理halcon实现图像亚像素边缘轮廓坐标提取并存储相关的知识,希望对你有一定的参考价值。

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')

以上是关于图像处理halcon实现图像亚像素边缘轮廓坐标提取并存储的主要内容,如果未能解决你的问题,请参考以下文章

图像处理 Halcon 实现图像亚像素边缘检测

图像处理 Halcon 实现图像亚像素边缘检测

halcon怎么求提取轮廓亚像素点

图像处理halcon根据轮廓亚像素点坐标绘图并分割为直线圆弧椭圆段

图像处理halcon根据轮廓亚像素点坐标绘图并分割为直线圆弧椭圆段

MATLAB教程案例28图像的边缘提取——cannysobelLaplacian以及图像亚像素级边缘提取