图像梯度-Sobel算子

img = cv2.imread('pie.png',cv2.IMREAD_GRAYSCALE)
cv2.imshow("img",img)
cv2.waitKey()
cv2.destroyAllWindows()

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

  • ddepth:图像的深度
  • dx和dy分别表示水平和竖直方向
  • ksize是Sobel算子的大小
def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows()
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)cv_show(sobelx,'sobelx')


白到黑是正数,黑到白就是负数了,所有的负数会被截断成0,所以要取绝对值

sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)
sobelx = cv2.convertScaleAbs(sobelx)
cv_show(sobelx,'sobelx')


分别计算x和y,再求和

sobelxy = cv2.addWeighted(sobelx,0.5,sobely,0.5,0)
cv_show(sobelxy,'sobelxy')


不建议直接计算(会有重影)

img = cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)
cv_show(img,'img')

img = cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)
sobelx = cv2.convertScaleAbs(sobelx)
sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=3)
sobely = cv2.convertScaleAbs(sobely)
sobelxy = cv2.addWeighted(sobelx,0.5,sobely,0.5,0)
cv_show(sobelxy,'sobelxy')

img = cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)sobelxy=cv2.Sobel(img,cv2.CV_64F,1,1,ksize=3)
sobelxy = cv2.convertScaleAbs(sobelxy)
cv_show(sobelxy,'sobelxy')

图像梯度-Scharr算子


不同算子的差异

#不同算子的差异
img = cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)
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)
sobelxy =  cv2.addWeighted(sobelx,0.5,sobely,0.5,0)  scharrx = cv2.Scharr(img,cv2.CV_64F,1,0)
scharry = cv2.Scharr(img,cv2.CV_64F,0,1)
scharrx = cv2.convertScaleAbs(scharrx)
scharry = cv2.convertScaleAbs(scharry)
scharrxy =  cv2.addWeighted(scharrx,0.5,scharry,0.5,0) laplacian = cv2.Laplacian(img,cv2.CV_64F)
laplacian = cv2.convertScaleAbs(laplacian)   res = np.hstack((sobelxy,scharrxy,laplacian))
cv_show(res,'res')

OpenCV计算机视觉实战(Python版)_005图像的梯度处理相关推荐

  1. OpenCV计算机视觉实战(Python版)_002图像基本操作

    OpenCV计算机视觉实战(Python版) https://www.bilibili.com/video/BV1ct411F7Te?p=2 数据读取-图像 cv2.IMREAD_COLOR:彩色图像 ...

  2. OpenCV计算机视觉实战(Python版)_004图像形态学处理

    形态学处理 腐蚀操作 img = cv2.imread('dige.png')cv2.imshow('img', img) cv2.waitKey(0) cv2.destroyAllWindows() ...

  3. OpenCV计算机视觉实战(Python版)资源

    疲劳检测 pan.baidu.com/s/1Ng_-utB8BSrXlgVelc8ovw #导入工具包 from scipy.spatial import distance as dist from ...

  4. OpenCV计算机视觉实战(Python版)_003阈值与平滑处理

    灰度图 import cv2 #opencv读取的格式是BGR import numpy as np import matplotlib.pyplot as plt#Matplotlib是RGB %m ...

  5. OpenCV计算机视觉实战(Python版)_006边缘检测

    Canny边缘检测 使用高斯滤波器,以平滑图像,滤除噪声. 计算图像中每个像素点的梯度强度和方向. 应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应. ...

  6. OpenCV计算机视觉实战 | 第5章 图像梯度算子

    本文为课程<OpenCV计算机视觉实战>的课程笔记. 本章节讲述了图像梯度的计算方法.图像的梯度表征每个像素点和周围像素点差异程度. 上:梯度值公式:下:梯度方向公式 1 Sobel算子 ...

  7. OpenCV计算机视觉实战(Python)_09-项目实战:信用卡数字识别( Jupyter notebook实现)

    1.介绍 从一个银行卡中识别其中的银行卡号: 2. 流程 读图 , 灰度图 , 二值化 使用模板匹配方式对模板,以及输入图像进行轮廓检测(检测外轮廓). 得到当前轮廓的外接矩形. 将模板中的外接矩形切 ...

  8. OpenCV计算机视觉实战(Python)_05-图像梯度处理

    图像梯度-Sobel算子 其计算梯度的过程为: sobel和scharr对应的参数信息: src – 输入图像.dst – 输出图像,与输入图像同样大小,拥有同样个数的通道. ddepth –输出图片 ...

  9. OpenCV计算机视觉编程Python版

    http://download.csdn.net/download/u014036026/9823217 好清晰的中文版

最新文章

  1. C语言--static全局使用示例
  2. SCCM管理 - 更新部署
  3. 手把手教你玩转ARP包(三)
  4. Spring Boot JPA中关联表的使用
  5. Python文件类型
  6. appium java api文档_Appium常用API
  7. 在Winhex中搜索文本字符时注意
  8. Adaboost算法结合Haar-like特征
  9. BAT命令手动_自动启动和禁用服务
  10. ubuntu c/c++ 生成.so 并被python调用
  11. BP神经网络算法基本原理,BP神经网络计算过程
  12. 二极管主要特性及伏安特性曲线
  13. 计算机重新启动后打印机脱机,重新启动计算机后打印机脱机怎么办
  14. pada mysql
  15. 有哪些好用的微信群管理工具?
  16. java fail 方法_java中的fail是什么意思
  17. 分类:决策树——剪枝
  18. URP中摄像机参数的设置
  19. 敏捷效能提升的五大要素与误区
  20. 【C++】挖金子(黄金矿工)分析与代码实现

热门文章

  1. 安卓案例:基于HttpURLConnection下载文本与图片
  2. 翻译练习:计算机网络
  3. think php 3.3.3看云,入口文件 · ThinkPHP3.2.3完全开发手册 · 看云
  4. pitr 原理_PostgeSQL 数据库备份与恢复实验 (PITR)
  5. python循环括号_Python3中小括号()、中括号[]、花括号{}的区别详解
  6. tensorflow2.0 图像处理项目_航天泰坦丨国产自主遥感图像处理软件当自强
  7. 代码块是什么?该如何使用?
  8. mqtt调试助手_腾讯物联网开发平台入门操作,如何使用MQTT协议上传温度湿度数据...
  9. java替换最后一个字符_Excel公式技巧23: 同时定位字符串中的第一个和最后一个数字...
  10. 神经网络之文本情感分析(一)