目录
相关链接
- 相关链接
- 1 halcon简要指导
- 2 实现
(1)【2021 亚太杯数学建模】赛题A-Image Edge Analysis and application图像边缘分析与应用 赛题思路解析及实现 (2)电脑浏览器打开:betterbench.top/#/46/detail
1 halcon简要指导对不同的轮廓进行提取,并计算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')