OpenCV半小时掌握基本操作之图像梯度
作者:我是小白呀 发布时间:2022-05-29 00:48:03
标签:OpenCV,图像梯度,python
【OpenCV】⚠️高手勿入! 半小时学会基本操作⚠️图像梯度
概述
OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界.
梯度运算
梯度: 膨胀 (Dilating) - 腐蚀 (Eroding).
例子:
# 读取图片
pie = cv2.imread("pie.jpg")
# 核
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()
输出结果:
礼帽
礼帽 (Top Hat): 原始输入 - 开运算结果.
例子:
# 读取图片
img = cv2.imread("white.jpg")
# 核
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()
输出结果:
黑帽
黑帽 (Black Hat): 闭运算 - 原始输入.
例子:
# 读取图片
img = cv2.imread("white.jpg")
# 核
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()
输出结果:
Sobel 算子
Sobel 算子 (Sobeloperator) 是边缘检测中非常重要的一个算子. Sobel 算子是一类离散性差分算子, 用来运算图像高亮度函数的灰度之近似值.
格式:
cv2.Sobel(src, ddepth, dx, dy, ksize)
参数:
src: 原图
ddepth: 图片深度
dx: 水平方向
dy: 竖直方向
ksize: 算子大小
计算 x
代码:
# 读取图片
img = cv2.imread("pie.jpg")
# Sobel算子
sobelx = cv2.Sobel(img, -1, 1, 0, ksize=3)
# 展示图片
cv2.imshow("sobelx", sobelx)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
计算 y
代码:
# 读取图片
img = cv2.imread("pie.jpg")
# Sobel算子
sobely = cv2.Sobel(img, -1, 0, 1, ksize=3)
# 展示图片
cv2.imshow("sobely", sobely)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
计算 x+y
代码:
# 读取图片
img = cv2.imread("pie.jpg")
# Sobel算子
sobel = cv2.Sobel(img, -1, 1, 1, ksize=3)
# 展示图片
cv2.imshow("sobel", sobel)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
融合
代码:
# 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()
输出结果:
注: 当 ddepth 设置为 -1, 即与原图保持一致, 得到的结果可能是错误的. 计算梯度值可能出现负数, 负数会自动截断为 0. 为了避免信息丢失, 我们需要使用更高是数据类型 cv2.CV_64F, 再通过取绝对值将其映射到 cv2.CV_8U 类型.
来源:https://blog.csdn.net/weixin_46274168/article/details/118876117
0
投稿
猜你喜欢
- 1. 一个指令定义对象可以提供如下几个钩子函数(均为可选)bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置
- 今天,在家试试django的model的设置,如何设置的联合主键,我经过查资料和实践,把结果记录如下:例如:class user(Model
- 根据“廖雪峰”的教程进行python学习,计划每天抽出1-2个小时的时间进行充电。Python是著名的“龟叔”Guido van Rossu
- 一、前期工作环境:python3.6,1080ti,pytorch1.10(实验室服务器的环境)1.设置GPU或者cpuimport tor
- pyecharts中的Funnel函数可以绘制漏斗图,自动根据数据大小生成由大到小自上而下排列的一个漏斗样的图形。1、导入Funnel模块。
- 写在前面作为一名找不到工作的爬虫菜鸡人士来说,登陆这一块肯定是个比较大的难题。 从今天开始准备一点点对大型网站进行逐个登陆破解。加
- 神经网络一般用GPU来跑,我们的神经网络框架一般也都安装的GPU版本,本文就简单记录一下GPU使用的编写。GPU的设置不在model,而是在
- 方法一:同步操作1.pipelines.py文件(处理数据的python文件)import pymysqlclass LvyouPipeli
- 今天来介绍一下Tensorflow里面的反卷积操作,网上反卷积的用法的介绍比较少,希望这篇教程可以帮助到各位反卷积出自这篇论文:Deconv
- 字符编码,在编程中,是一个让学习者比较郁闷的东西,比如一个str,如果都是英文,好说多了。但恰恰不是如此,中文是我们不得不用的。所以,哪怕是
- 本文实例讲述了Python使用matplotlib绘制三维参数曲线操作。分享给大家供大家参考,具体如下:一 代码import matplot
- ppt通过其精美的可视化技巧以及良好的演示效果,成为了职场人士的必备技能。ppt的设计是一门大学问,无论是设计技巧,还是操作方法,都衍生出了
- 一 . 得到这个对象的实例Connection con ;con = DriverManager.getConnection(url,use
- MNIST数据集介绍MNIST数据集中包含了各种各样的手写数字图片,数据集的官网是:http://yann.lecun.com/exdb/m
- 二维矩阵的transpose函数:不晓得该怎么起头,直接上干货。transpose()简单来说,就相当于数学中的转置,在矩阵中,转置就是把行
- 问题描述:在django中创建了一个app,而且在app中自定义创建了几个数据表,在同步的时候系统自带的表可以成功,但是models中的没有
- 导读MySQL被运用于越来越多的业务中,在关键业务中对数据安全性的要求也更高,如何保证MySQL的数据安全?数据安全如果只靠MySQL应用层
- 首先是不知道怎么忽然mysql用命令行,workbench都登录不了,都提示'Access denied for user '
- 1.下载安装pyqt5工具包以及配置ui界面开发环境pip install PyQt5pip install PyQt5-tools2.点击
- 引言:刚学python好几天了,从java到python,基础学起来确实比较容易,语法掌握,基本概念上都比较容易入脑。唯一比较郁闷的是老想着