ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Halcon:正弦带通滤波器处理条纹

2021-01-14 11:31:44  阅读:529  来源: 互联网

标签:滤波器 带通 fft dev Halcon Width 频域 图像 Image


结果图:
在这里插入图片描述

原图:
在这里插入图片描述

主要处理思想:
1.图像从空间域变换到频域
2.新建一个带通滤波器,处理频域图像
3.再从频域图像转换为空间域图像
4.形态学面积选择+lines_gauss

代码如下:
*刷新界面
dev_update_off ()
*关闭窗口
dev_close_window ()
*读取图像
read_image (Image, ‘surface_scratch’)
*图像翻转,相当于每个像素都是255-该灰度值
invert_image (Image, ImageInverted)
*获取图像大小
get_image_size (Image, Width, Height)
*打开窗口
dev_open_window (0, 0, Width, Height, ‘black’, WindowHandle)
*设置字体
set_display_font (WindowHandle, 16, ‘mono’, ‘true’, ‘false’)
*显示图像
dev_display (Image)

  • 正弦带通滤波器,中间挡住了,四周也挡住了,保留了环状部分。
    gen_sin_bandpass (ImageBandpass, 0.4, ‘none’, ‘dc_center’, Width, Height)
    *从空间域变换到频域
    fft_generic (ImageInverted, ImageFFT, ‘to_freq’, -1, ‘none’, ‘dc_center’, ‘complex’)

*rft_generic (ImageInverted, ImageFFT, ‘to_freq’, ‘none’, ‘complex’, Width)
*处理图像
convol_fft (ImageFFT, ImageBandpass, ImageConvol)
*从频域变换到空间域
fft_generic (ImageConvol, Lines, ‘from_freq’, 1, ‘none’, ‘dc_center’, ‘byte’)
*rft_generic (ImageConvol, Lines, ‘from_freq’, ‘n’, ‘byte’, Width)
*
*二值化分割
threshold (Lines, Region, 5, 255)
*分割区域
connection (Region, ConnectedRegions)
*选择其中面积>5个像素的区域
select_shape (ConnectedRegions, SelectedRegions, ‘area’, ‘and’, 5, 5000)
*区域进行膨胀
dilation_circle (SelectedRegions, RegionDilation, 5.5)
*再进行联合
union1 (RegionDilation, RegionUnion)
*选择定义域
reduce_domain (Image, RegionUnion, ImageReduced)
*提取线条
lines_gauss (ImageReduced, LinesXLD, 0.8, 3, 5, ‘dark’, ‘false’, ‘bar-shaped’, ‘false’)
*共线联合算法
union_collinear_contours_xld (LinesXLD, UnionContours, 40, 3, 3, 0.2, ‘attr_keep’)
*找到长度在15个像素以上的线条区域
select_shape_xld (UnionContours, SelectedXLD, ‘contlength’, ‘and’, 15, 1000)
*从xld转换成区域
gen_region_contour_xld (SelectedXLD, RegionXLD, ‘filled’)
*区域联合在一起
union1 (RegionXLD, RegionUnion)
*再进行圆形膨胀
dilation_circle (RegionUnion, RegionScratches, 10.5)
*

  • Display the results
    dev_set_draw (‘margin’)
    dev_set_line_width (3)
    dev_set_colored (12)
    dev_display (Image)
    dev_display (RegionScratches)

对应示例程序:
find_scratches_bandpass_fft.hdev

标签:滤波器,带通,fft,dev,Halcon,Width,频域,图像,Image
来源: https://blog.csdn.net/yangsen001122/article/details/112506586

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有