当前位置: 首页 > news >正文

梯度计算中的一些算子

一、sobel算子

算子矩阵:2a74a11188824a4a87b5f3594da9e2ae.jpeg

# sobel算子 算梯度
# Gx = 右边-左边;Gy = 下边 - 上边
import cv2def cv_show(name, img):cv2.imshow(name, img)cv2.waitKey(0)cv2.destroyAllWindows()img_people = cv2.imread('people.png', cv2.IMREAD_GRAYSCALE)
cv_show('img_people', img_people)
原图结果:

# dst = cv2.Sobel(src, ddepth, dx, dy, ksize)
# ddepth:图像的深度,ksiz是sobel算子的大小,cv2.CV_64F 是一种浮点数类型,表示为64位的浮点数
# 1, 0 表示的就是在x方向上做,而y方向上不做
sobelx = cv2.Sobel(img_people, cv2.CV_64F, 1, 0, ksize=3)
sobelx = cv2.convertScaleAbs(sobelx)
Gx的结果:sobely = cv2.Sobel(img_people, cv2.CV_64F, 0, 1, ksize=3)
sobely = cv2.convertScaleAbs(sobely)
Gy的结果:cv_show('Gx', sobelx)
cv_show('Gy', sobely)
# G = Gx+Gy
# 分别计算x与y,再求和
sobelxy = cv2.addWeighted(sobelx,0.5, sobely, 0.5, 0)
cv_show('G', sobelxy)
G的结果:
# 不建议直接计算
# 计算效果提取出来的边缘不明显
sobelxy = cv2.Sobel(img_people, cv2.CV_64F, 1, 1, ksize=3)
# 有正有负,使用convertScaleAbs
sobelxy = cv2.convertScaleAbs(sobelxy)
cv_show('直接计算G', sobelxy)

G直接计算的结果:

3c735158c63d4ad9a88f8149877411a1.png

二、Scharr算子与laplacian算子

计算矩阵中的数值变得更大,代码执行的结果更为丰富。laplacian算子,对噪声更敏感。

Scharr算子:30968224554e4ffcbbbd3fff4c236254.jpeg

laplacian算子:a319aaca069640438ac09ff19b5a1a48.jpeg

 

# 不同算子的差异
sobelx = cv2.Sobel(img_people, cv2.CV_64F, 1, 0, ksize=3)
sobelx = cv2.convertScaleAbs(sobelx)
sobely = cv2.Sobel(img_people, cv2.CV_64F, 0, 1, ksize=3)
sobely = cv2.convertScaleAbs(sobely)
sobelxy = cv2.addWeighted(sobelx,0.5, sobely, 0.5, 0)Scharr算子:
scharrx = cv2.Scharr(img_people, cv2.CV_64F, 1, 0)
scharrx = cv2.convertScaleAbs(scharrx)
scharry = cv2.Scharr(img_people, cv2.CV_64F, 0, 1)
scharry = cv2.convertScaleAbs(sobely)
scharrxy = cv2.addWeighted(sobelx,0.5, scharry, 0.5, 0)laplacian算子:(没有x与y方向)
laplacian = cv2.Laplacian(img_people, cv2.CV_64F)
laplacian = cv2.convertScaleAbs(laplacian)
res = np.hstack((sobelxy, scharrxy, laplacian))
cv_show('res', res)

6546e9d367004abfb71d9b707364e838.png

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Go语言错误处理详解
  • 【AIGC】Kolors:快手开源的文生图大模型
  • WebGL系列教程九(动画)
  • Mysql SqlServer 分页
  • 【算法】BFS—解开密码锁的最少次数
  • 简单说说MySQL中 SELECT 语句执行流程
  • 优化器与现有网络模型的修改
  • 软件编程随想
  • 内存dump文件分析
  • STM32--基于PWM的呼吸灯实验
  • 服务器断电重启后报XFS文件系统错误 XFS (dm-0)_ Metadata I_O error
  • 多线程之CompletableFuture
  • nodejs 011: nodejs事件驱动编程 EventEmitter 与 IPC
  • SLA 概念和计算方法
  • 智慧课堂学生行为数据集
  • (三)从jvm层面了解线程的启动和停止
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Asm.js的简单介绍
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • in typeof instanceof ===这些运算符有什么作用
  • Java,console输出实时的转向GUI textbox
  • java8-模拟hadoop
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Linux中的硬链接与软链接
  • React-flux杂记
  • Redis在Web项目中的应用与实践
  • SpiderData 2019年2月25日 DApp数据排行榜
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 关于Java中分层中遇到的一些问题
  • 普通函数和构造函数的区别
  • 全栈开发——Linux
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 详解移动APP与web APP的区别
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 原生Ajax
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • (13)Hive调优——动态分区导致的小文件问题
  • (4) PIVOT 和 UPIVOT 的使用
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (独孤九剑)--文件系统
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (转)菜鸟学数据库(三)——存储过程
  • (转)详解PHP处理密码的几种方式
  • ***通过什么方式***网吧
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)