频率域滤波基础之五(读数字图像处理学习halcon)_halcon频域滤波_pengjc2001的博客-程序员秘密

技术标签: Halcon  

选择性滤波

在很多应用中,其中感兴趣是处理指定的频段或频率矩形。第一类滤波器分别称为带阻滤波器或带通滤波器。第二类滤波器称为陷波滤波器。

1、带阻滤波和带通滤波


D(u,v)是距离频率矩形中心的距离,D0是带宽的径向中心,W是带宽。一个带同滤波器可以用从低通滤波器得到高通滤波器的相同的方法从带阻滤波器中得到


halcon生成理想带阻带通和高斯带阻带通的代码

read_image (Image, 'D:/halcon work/fft/1.png')
rgb1_to_gray (Image, GrayImage)
get_image_size (GrayImage, Width, Height)
fft_generic (GrayImage, ImageFFT, 'to_freq', -1, 'sqrt', 'dc_center', 'complex')
gen_bandpass (ImageBandpass, 0.4, 0.5, 'none', 'dc_center', Width, Height)
gen_bandfilter (ImageFilter, 0.4, 0.5, 'none', 'dc_center', Width, Height)
gen_std_bandpass (ImageFilter2, 0.5, 0.1, 'gauss', 'none', 'dc_center', Width, Height)
gen_image_const (Image2, 'real', Width, Height)
paint_region (Image2, Image2, ImageResult1, 1, 'fill')
sub_image (ImageResult1, ImageFilter2, ImageSub1, 1, 0)


2、陷波滤波器

这是一种更加有用的选择性滤波器。它拒绝(或通过)事先定于的关于频率矩形中心的一个邻域的频率。零相移滤波器必须是关于原点对称的,因此,一个中心位于(u0,v0)的陷波在位置(-u0,-v0)必须有一个对应的陷波(或者说 由于傅里叶的周期性,傅里叶频谱上不可能单独存在一个点的噪声,必定是关于远点对称的一个噪声对)。陷波带阻滤波器可以用中心已被平议到陷波滤波器中心的高通滤波器的乘积来构造。一般形式

其中,Hk(u,v)和H-k(u,v)是高通滤波器,它们的中心分别位于,(uk,vk)和(-uk,-vk)处。这些点也是我们要去除的噪声点。这些中心是根据频率矩形中心(M/2,N/2)来确定的。对于每个滤波器,距离的计算由下式执行:


对于陷波带通滤波器照样可以通过从低通得到高通的相同方法得到。

用halcon来构建一个去除摩尔纹的例子

read_image (Image1, 'D:/halcon work/fft/a.jpg') 
rgb1_to_gray(Image1, Image) 
get_image_size (Image, Width, Height) 
optimize_fft_speed (Width, Height, 'standard') 
fft_generic (Image, ImageFFT, 'to_freq', -1, 'sqrt', 'dc_center', 'complex') 
power_real (ImageFFT, PowerSpectrum) 
binomial_filter (PowerSpectrum, ImageSmooth, 9, 9) 
threshold (ImageSmooth, Region, 128, 100000) 
connection (Region, ConnectedRegions) 
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 5, 200)
dilation_circle (SelectedRegions, RegionDilation, 3.5)
paint_region (RegionDilation, ImageFFT, ImageFFTFiltered, 0, 'fill')
fft_generic (ImageFFTFiltered, ImageFiltered, 'from_freq', 1, 'sqrt', 'dc_center', 'byte')


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/pengjc2001/article/details/54133840

智能推荐

ASP.net GridView控件(分页)_asp:gridview 后端分页_白露-的博客-程序员秘密

一.说明部分代码的运用放在以往的教程中,本部分只讲解分页功能.二.前端代码<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebGv2.aspx.cs" Inherits="WebApplication6.WebGv2" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"&g

oracle expdp/impdp高版本导入到低版本_冷月宫主的博客-程序员秘密

oracle 导入导出  使用expdp/impdp我的版本11gR2   版本号 11.2.0.1.0    同事的是11gr1 需要指定版本号11.1.0.6.0我装的oracle是11gR2  同事装的是11gR1  用expdp导出  impdp导入  提示版本不兼容错误经查看oracle文档  看到了 这个参数version  最后加oracle版本号 version=1

hbase导入数据几种方式_刀砍磁感线的博客-程序员秘密

转自:http://database.51cto.com/art/201407/445438.htmHBase实战(1):数据导入方式作为Hadoop生态系统中重要的一员, HBase作为分布式列式存储, 在线实时处理的特性, 备受瞩目, 将来能在很多应用场景, 取代传统关系型数据库的江湖地位. 本篇博文重点讲解HBase的数据导入, 描述三种方式, Clien

【Java基础】StringUtils中isNotBlank和isNotEmpty的区别_java isnotblank_孙正嗯大正的博客-程序员秘密

isNotEmpty将空格也作为参数,isNotBlank则排除空格参数1,isNotEmpty(str)等价于 str != null && str.length > 0。2,isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length > 0。同理:1,isEmpty 等价于 str == null || str.length == 0。2,isBl

租酥雨的NOIP2018赛前日记_abcyan1235的博客-程序员秘密

租酥雨的NOIP2018赛前日记离\(\mbox{NOIP2018}\)只剩下不到一个月的时间辣!想想自己再过一个月就要退役了,觉得有必要把这段时间的一些计划与安排记录下来。就从国庆收假开始吧。2018.10.07下午跟\(\mbox{yyb}\)一起做晚上好题分享的课件。\(\mbox{yyb}\)个毒瘤塞了\(5\)道\(\mbox{Atcoder}\)被阉割成\(3\)道...

vue.js:基于nodejs使用log4js输出日志文件_log4js webpack vue_奋斗鱼的博客-程序员秘密

一、问题开发web项目过程中,常规的console.log()只是将信息反映在了浏览器的控制台,我们经常需要输出到文本日志文件,以便开发调试和维护排查。下面介绍log4js在vue项目中的部署与使用。二.解决方案1.安装log4j// 注意:如果只执行npm install XXX,没有指定安装到那种环境下的“后缀”,就会发现node-modules中安装了,但是package.json中没有的情况。// 1、保存到开发依赖(devDependencies):npm install

随便推点

C#周立功CAN卡二次开发心得_周立功can二次开发_weixin_42188495的博客-程序员秘密

C#周立功CAN卡二次开发心得二次开发说明二级目录三级目录二次开发说明一、整体说明二次开发说明二级目录三级目录二次开发说明最近自学C#,且工作有涉及CAN,就从周立功官网下载了二次开发文档、C#案例。进行改造,以下是相关心得一、整体说明周立功官网提供各种开发环境的案例,如c++、c#,已经写好了开发...

利用msf进行端口转发_冲冲_冲的博客-程序员秘密

有时候爆破得到服务弱口令本机却连接不上,此时我们就需要用到端口转发左侧的图是msf进行端口转发右侧重新打开一个终端 去连接转发到本地的端口 -u用户名 -p密码...

加密算法小结_密码算法小结_AinUser的博客-程序员秘密

1.密码为什么要加密传输?防止明文密码在传输过程中被窃取2.密码的加密方式?①对称加密算法②非对称加密算法③散列算法参照详解:https://blog.csdn.net/AinUser/article/details/897638423.撞库、拖库、洗库名词解释撞库:黑客无聊的“恶作剧”,黑客通过收集互联网已泄露的用户+密码信息,生成对应的字典表,尝试批量登陆其他网站后,得...

陈怡暖:2015.5.25早间最强现货黄金白银操作建议_陈怡暖的博客-程序员秘密

陈怡暖:2015.5.25早间最强现货黄金白银操作建议    陈怡暖:现任中瀚集团首席分析师,毕业于西南财经大学金融系,国外进修金融专业两年,五年从业经验,知名财经频道分析解说师,各大财经网站专业撰稿人,擅长中短线操作,致力于打造华中地区最诚信分析师,客户提供优质的服务,为每一位投资者提供最专业的贵金属走势分析及业务咨询。我们相互关心、相互信任、相互爱护、相互促进、共同学习、共同成长、实现

ROS学习笔记之——EKF (Extended Kalman Filter) node 扩展卡尔曼滤波_ekf ros_gwpscut的博客-程序员秘密

最近正好准备想试试利用EKF实现多传感器的融合。但没想到本身ROS里面就已经有EKF的功能包了。这个包用于评估机器人的3D位姿,使用了来自不同源的位姿测量信息,它使用带有6D(3D position and 3D orientation)模型信息的扩展卡尔曼滤波器来整合来自轮子里程计,IMU传感器和视觉里程计的数据信息。 基本思路就是用松耦合方式融合不同传感器信息实现位姿估计。下面来学习一下robot_pose_ekf概要 Robot Pose EKF 包用于评估机器人的3D...

单链表基本操作及面试题_daboluo520的博客-程序员秘密

#define _CRT_SECURE_NO_WARNINGS #pragma once#include using namespace std;#include #include //无头单链表typedef struct Node{ Node* _pNext; int _data;}Node, *pNode;//接收二级指针,因为如果接收一级指针的参数,无法改变外