最大-最小 滤波器实现 及用于边缘检测
一. 边缘检测
边缘检测通常作用于灰度图像上。边缘检测用于检测图像中的线。
边缘检测结果 ↑
二. 最大 - 最小滤波器(Max - Min)
3*3 Max-Min Filter 算法原理 ↑
我们知道,图像的细节属于低频信息,图像的边缘属于高频信息。我们使用一定大小的 Max-Min 滤波器作用于图像,当滤波器作用于图像细节时,输出结果往往趋向于0(黑色);而滤波器作用于图像边缘时,Max-Min 输出结果往往趋向于255(白色)。所以 最大-最小滤波器 能有效地用于检测图像的边缘和轮廓。
三. python实现 最大-最小 滤波器
用3*3的 Max-Min 滤波器对图像进行边缘检测
import cv2import numpy as np# BGR to Gray scaledef BGR2GRAY(img):b = img[:, :, 0].copy()g = img[:, :, 1].copy()r = img[:, :, 2].copy()# Gray scaleout = 0.2126 * r + 0.7152 * g + 0.0722 * bout = out.astype(np.uint8)return out# max-min filterdef max_min_filter(img, K_size=3):H, W = img.shape# Zero paddingpad = K_size // 2out = np.zeros((H + pad * 2, W + pad * 2), dtype=np.float)out[pad: pad + H, pad: pad + W] = gray.copy().astype(np.float)tmp = out.copy()# filteringfor y in range(H):for x in range(W):# core codeout[pad + y, pad + x] = np.max(tmp[y: y + K_size, x: x + K_size]) - \np.min(tmp[y: y + K_size, x: x + K_size])out = out[pad: pad + H, pad: pad + W].astype(np.uint8)return out# Read imageimg = cv2.imread("../paojie.jpg").astype(np.float)# get grayscalegray = BGR2GRAY(img)# Max-Min filteringout = max_min_filter(gray, K_size=3)# Save resultcv2.imwrite("out.jpg", out)cv2.imshow("result", out)cv2.waitKey(0)cv2.destroyAllWindows()
四. 实验结果:
边缘检测结果 ↑
原图 ↑
五. 参考内容:
https://www.cnblogs.com/wojianxin/p/12502812.html
https://www.jianshu.com/p/fea3b4d741ab
最大-最小 滤波器实现 及用于边缘检测相关推荐
- php++网页最右下角,js实现右下角可关闭最小化div(可用于展示推荐内容)
本实例使用Javascript实现右下角可关闭最小化div,可以用于展示推荐内容,效果预览网址:http://keleyi.com/keleyi/phtml/xuanfudiv/3.htm 效果图片: ...
- 基于STM32F4的智能门锁超详细解析(矩阵键盘、OLED、舵机、HC-05蓝牙、F407ZG最小系统)可用于毕业设计
前言: 对于刚学习STM32单片机的小伙伴,学习了理论知识和部分可驱动的模块,但是综合项目还没有触碰过多少.所以本文已最简单的模块进行简单的知识梳理和疑问解答.本文有参考其他博主内容,会在使用这些 ...
- gabor滤波器 opencv 实现
转载请注明:http://www.cppblog.com/polly-yang/ 一.房屋检测小结 一开始,直接用LSD(Line Segment Detector)检测VHR(Very High R ...
- gabor小波滤波器的在纹理提取、图像匹配上的作用
1.作用:Gabor小波可以方便的提取图像在各个尺度和方向上的纹理信息,同时在一定程度上降低了图像中光照变化和噪声的影响. 其对光照不敏感的例子: 注意:其对图像的旋转也具有一定的适应性.其出现特征提 ...
- Gabor滤波小结整理
Gabor滤波小结整理 from:http://blog.sina.com.cn/s/blog_6f611c3001018jcx.html 看到两文章摘抄之后整理得到: 一.Gabor 滤波器简介(部 ...
- matlab学习:图像频域分析之Gabor滤波
很多同学需要源文档,所以添加了下载链接,方便大家共同学习进步~ 本文下载链接:http://files.cnblogs.com/yingying0907/Gabor%E7%AC%94%E8%AE%B0 ...
- gabor 变换matlab,Gabor变换到底是什么鬼?
欲讲gabor,必须先看下傅里叶变换有什么缺点! 1.傅里叶变换 1) 简介 数字图像处理的方法主要分成两大部分:空域分析法和频域分析法.空域分析法就是对图像矩阵进行处理:频域分析法是通过图像变换将图 ...
- Mobile Net 系列【V1—V3】
1. MobileNet V1 1.1 Abstract 我们提出了一类用于移动和嵌入式视觉应用程序的高效模--MobileNet,此模型使用深度可分离卷积来构建轻量级深度神经网络.我们还介绍了两个超 ...
- 针对遥感目标检测(小目标、旋转框、密集目标)的论文整理
文献整理 文章目录 文献整理 A Multi-Feature Fusion-Based Change Detection Method for Remote Sensing Images 内容摘要 A ...
最新文章
- 几分钟让小孩的人物涂鸦「动起来」,Meta AI创建了一个奇妙的火柴人世界
- ssm项目集成ftp_SSM开发框架实例(struts+spring+springmvc)
- 包(package)
- 清空sqlserver当前日志信息!
- 【HDU1203 HDU2955 01背包中的简单概率问题处理】
- 虚拟机屏幕界面自适应调整
- PHP学习笔记(一):理解匿名函数与Closure
- linux中负载值为多少正常_Linux系统中load average平均负载
- HTML期末作业-美食点餐网页
- oracle添加已有的实例,Oracle数据库怎么添加新的实例?,oracle实例
- TokenInsight:反映区块链行业整体表现的 TI 指数较昨日同期下跌1.03%
- 通过Modbus转EtherNetIP网关连接AB PLC的配置案例
- 【Windows】中DOMAIN域
- 数据库sql课后总结
- 怎样把CAD图纸的背景颜色修改成白色?
- C语言七巧板游戏制作,绘本里的七巧板游戏
- Kinect深度图与摄像头RGB的标定与配准(文末总结不容错过)
- 虚拟机ipv4和6都没访问权限_ipv4和ipv6无网络访问权限 win10
- 网吧计算机无法远程,win7网络711无法加载远程访问解决方法 | 专业网吧维护
- Unity中暂停、继续播放、杀死、正放、倒放Dotween动画