OpenCV 图像梯度的实现方法


Posted in Python onJuly 25, 2021

概述

OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界.

梯度运算

梯度: 膨胀 (Dilating) - 腐蚀 (Eroding).

例子:

# 读取图片
pie = cv2.imread("pie.png")

# 核
kernel = np.ones((7, 7), np.uint8)

# 计算梯度
gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel=kernel)

# 图片展示
cv2.imshow("gradient", gradient)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果:

OpenCV 图像梯度的实现方法

礼帽

礼帽 (Top Hat): 原始输入 - 开运算结果.

例子:

# 读取图片
img = cv2.imread("white.png")

# 核
kernel = np.ones((7, 7), np.uint8)

# 礼帽
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel=kernel)

# 图片展示
cv2.imshow("tophat", tophat)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果:

OpenCV 图像梯度的实现方法

黑帽

黑帽 (Black Hat): 闭运算 - 原始输入.

例子:

# 读取图片
img = cv2.imread("white.png")

# 核
kernel = np.ones((7, 7), np.uint8)

# 礼帽
blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel=kernel)

# 图片展示
cv2.imshow("blackhat", blackhat)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果:

OpenCV 图像梯度的实现方法

Sobel 算子

Sobel 算子 (Sobeloperator) 是边缘检测中非常重要的一个算子. Sobel 算子是一类离散性差分算子, 用来运算图像高亮度函数的灰度之近似值.

格式:

cv2.Sobel(src, ddepth, dx, dy, ksize)

参数:

  • src: 原图
  • ddepth: 图片深度
  • dx: 水平方向
  • dy: 竖直方向
  • ksize: 算子大小

计算 x

代码:

# 读取图片
img = cv2.imread("pie.png")

# Sobel算子
sobelx = cv2.Sobel(img, -1, 1, 0, ksize=3)

# 展示图片
cv2.imshow("sobelx", sobelx)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果:

OpenCV 图像梯度的实现方法

计算 y

代码:

# 读取图片
img = cv2.imread("pie.png")

# Sobel算子
sobely = cv2.Sobel(img, -1, 0, 1, ksize=3)

# 展示图片
cv2.imshow("sobely", sobely)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果:

OpenCV 图像梯度的实现方法

计算 x+y

代码:

# 读取图片
img = cv2.imread("pie.png")

# Sobel算子
sobel = cv2.Sobel(img, -1, 1, 1, ksize=3)

# 展示图片
cv2.imshow("sobel", sobel)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果:

OpenCV 图像梯度的实现方法

融合

代码:

# Sobel算子
sobelx = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=3)
sobely = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=3)

# 转换成绝对值
sobelx = cv2.convertScaleAbs(sobelx)
sobely = cv2.convertScaleAbs(sobely)

# 融合
sobel_xy = cv2.addWeighted(sobelx, 0.5, sobely, 0.5, 0)

# 展示图片
cv2.imshow("sobel_xy", sobel_xy)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果:

OpenCV 图像梯度的实现方法

注: 当 ddepth 设置为 -1, 即与原图保持一致, 得到的结果可能是错误的. 计算梯度值可能出现负数, 负数会自动截断为 0. 为了避免信息丢失, 我们需要使用更高是数据类型 cv2.CV_64F, 再通过取绝对值将其映射到 cv2.CV_8U 类型.

到此这篇关于OpenCV 图像梯度的实现方法的文章就介绍到这了,更多相关OpenCV 图像梯度内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python通过zlib实现压缩与解压字符串的方法
Nov 19 Python
Python生成随机密码
Mar 10 Python
详解Python3中yield生成器的用法
Aug 20 Python
Python 关于反射和类的特殊成员方法
Sep 14 Python
Python方法的延迟加载的示例代码
Dec 18 Python
Python实现中一次读取多个值的方法
Apr 22 Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
python2和python3实现在图片上加汉字的方法
Aug 22 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
Sep 04 Python
Python matplotlib修改默认字体的操作
Mar 05 Python
java关于string最常出现的面试题整理
Jan 18 Python
ROS系统将python包编译为可执行文件的简单步骤
Jul 25 #Python
Pandas自定义选项option设置
Jul 25 #Python
Pandas 稀疏数据结构的实现
Jul 25 #Python
Python中rapidjson参数校验实现
Jul 25 #Python
理解python中装饰器的作用
Jul 21 #Python
opencv检测动态物体的实现
Python爬虫中urllib3与urllib的区别是什么
You might like
电脑硬件及电脑配置知识大全
2020/03/17 数码科技
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
js调用iframe实现打印页面内容的方法
2014/03/04 Javascript
jscript读写二进制文件的方法
2015/04/22 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
jquery validate demo 基础
2015/10/29 Javascript
Javascript中神奇的this
2016/01/20 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
js调用设备摄像头的方法
2018/07/19 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
Python学习笔记之os模块使用总结
2014/11/03 Python
python算法表示概念扫盲教程
2017/04/13 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
深入了解python列表(LIST)
2020/06/08 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
英国羊皮鞋类领先品牌:Just Sheepskin
2019/12/12 全球购物
火锅店创业计划书范文
2014/02/02 职场文书
坚定理想信念心得体会
2014/03/11 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
画展邀请函
2015/01/31 职场文书
校长师德表现自我评价
2015/03/04 职场文书
保护环境建议书作文400字
2015/09/14 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
python turtle绘图
2022/05/04 Python
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers