Sobel  算子

Sobel  算子 -- 是一种带有方向性的滤波器,

在Python 中的原型:

dst = cv2.Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]])

src -- 原图像

ddepth -- 图像的深度,-1 表示采用的是与原图像相同的深度。目标图像的深度必须大于等于原图像的深度。

dx dy -- 表示的是示导的阶数,0 表示这个方向上没有求导,一般为 0,1,2。

【可选参数】

dst --  目标图像,与原图像(src)据有相同的尺寸和通道

ksize -- Sobel算子的大小,必须为1、3、5、7。

scale  --  缩放导数的比例常数,默认情况下没有伸缩系数

delta -- 一个可选的增量,将会加到最终的dst中,同样,默认情况下没有额外的值加到dst中

borderType -- 判断图像边界的模式。这个参数默认值为cv2.BORDER_DEFAULT。

使用示例:

#!/usr/bin/env python
# encoding: utf-8
import cv2
import numpy as np img = cv2.imread("2.jpg", 0)
x = cv2.Sobel(img,cv2.CV_16S,1,0) #
y = cv2.Sobel(img,cv2.CV_16S,0,1)  absX = cv2.convertScaleAbs(x)   # 转回uint8
absY = cv2.convertScaleAbs(y)  dst = cv2.addWeighted(absX,0.5,absY,0.5,0)  cv2.imshow("X", absX)
cv2.imshow("Y", absY)  cv2.imshow("Result", dst)  cv2.waitKey(0)
cv2.destroyAllWindows() 

cv2.CV_16S -- Sobel 函数求完导数后会有负值和大于255的值,而原图像是uint8(8位无符号数据),所以在建立图像时长度不够,会被截断,所以使用16位有符号数据。

convertScaleAbs() --  转回uint8形式,否则将无法显示图像,而只是一副灰色图像 
addWeighted() --  组合图像

函数原型:

dst = cv2.convertScaleAbs(src[, dst[, alpha[, beta]]])

src -- 原图像

dst -- 目标图像

alpha  -- 伸缩系数

beta  --  累加到结果上的一个值

dst = cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]])  

alpha  --  第一幅图片中元素的权重

beta  --  第二个权重
gamma   --  累加到结果上的一个值

效果图像:

参考和转载:

http://blog.csdn.net/sunny2038/article/details/9170013

Python OpenCV -- Sobel 算子(九)相关推荐

  1. Python OpenCV -- Laplacian 算子(十)

    Laplacian 算子: 原理分析:  Sobel 算子 : 在一个图像区域中的边缘部分,像素值出现"跳跃"或者较大的变化.如果在此边缘部分求取一阶导数,会看到极值的出现如图: ...

  2. opencv——Sobel算子与Scharr算子

    目录 算子 边缘提取与梯度 边缘提取 Sobel算子 原理 API 代码展示 结果 优化代码 结果 Scharr算子 代码 结果 算子 狭义的算子实际上是指从一个函数空间到另一个函数空间(或它自身)的 ...

  3. python+OpenCV图像处理(九)图像金字塔

    图像金字塔        图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构.图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步 ...

  4. 【CV】Sobel算子简介

    引言 Sobel算子是一种常用的边缘检测算法,是一种离散性差分算子,用差分近似代替梯度.对x求1阶差分用来检测竖直边缘,同样的对y求1阶差分用来检测水平边缘. sobel算子对垂直和水平方向上的排列表 ...

  5. 利用sobel算子提取图像的水平特征和竖直特征

    一. sobel滤波器介绍 sobel滤波器常用来提取灰度图像的水平边缘(水平特征)和竖直边缘(竖直特征) 二. sobel算子    纵向算子,提取图像水平边缘 ↑ 横向算子,提取图像竖直边缘 ↑ ...

  6. [图像处理] Python+OpenCV实现车牌区域识别及Sobel算子

    由于最近太忙,这篇文章只给出相关代码供大家学习,过一段时间会详细的写一些列Python图像处理的文章,包括各种算法原理.图像识别.图像增强.图像分类.深度学习等.本篇文章主要调用OpenCV库(cv2 ...

  7. python+OpenCv笔记(十三):边缘检测——Sobel检测算子

    Sobel检测算子 概述: Sobel边缘检测算法比较简单,实际应用中效率比canny边缘检测效率要高,但是边缘不如Canny检测的准确,但是很多实际应用的场合,sobel边缘却是首选,Sobel算子 ...

  8. 【OpenCV入门学习--python】索贝尔算子Sobel operator提取边缘

    例子源于OpenCV官网手册(https://docs.opencv.org/4.x/d2/d2c/tutorial_sobel_derivatives.html) 使用OpenCV函数Sobel() ...

  9. python sobel算子_利用sobel算子计算图像的梯度(python+opencv)

    sobel算子计算的梯度图是带有方向的 代码实现如下: #coding=utf-8 import cv2 import numpy as np #利用sobel算子计算图像的梯度 img=cv2.im ...

最新文章

  1. Nginx + Spring Boot 实现负载均衡
  2. 关于伺服驱动控制的课本_西门子伺服电机驱动系列汇总,说明书参数及使用方法。...
  3. Java EE 8中的MVC 1.0:使用Facelets入门
  4. UE4 多个static mesh合并成一个static mesh
  5. WinForm中的ListBox和ComboBox的使用
  6. 洛谷 P2341 [HAOI2006]受欢迎的牛
  7. Java微信公众平台开发(十五)--微信JSSDK的使用
  8. 顺无盘linux win10包,(2017.01.14)网维大师9.0.3.0无盘-xp-win7x32-x64-Win10x64公包
  9. 小度计算机笔记,开售告罄、口碑炸裂、高语音交互率的小度耳机全新升级语音笔记...
  10. Visual Studio MFC编程 程序调试时所遇到的问题及解决方法
  11. iPad——添加学校邮箱到邮件解决方案
  12. 计算机启动太慢可以设置什么来加速启动速度,电脑开机启动慢怎么办?教你4种设置方法,轻松加快win10开机速度!...
  13. ASP程序加密解密方法全面解析
  14. 我为什么放弃java学习Kotlin?
  15. C语言:开平方判断素数
  16. html style属性的用法
  17. windows下x265下载安装与配置
  18. 第十二届蓝桥杯国赛真题+题解 Python
  19. python类初始化返回实例_Python基础——类、实例及初始化
  20. superslide遇到jQuery(…).slide is not a function解决办法

热门文章

  1. 统计机器翻译 NiuTrans 开源软件
  2. Git Stash详细讲解
  3. 微信小程序统一分享,全局接管页面分享消息的一些技巧
  4. html 表格中加按钮,HTML 表单按钮
  5. 大咖说·图书分享|阿里官方为你分享内部测试之道
  6. CF#333(Div2) C. The Two Routes(最短路)
  7. http header中的Content-disposition
  8. viewpage显示服务器图片,照片查看器——ViewPager实现的图片展示控件
  9. 使用git向远程厂库提交代码时rejcted错误
  10. Hadoop序列化案例