Python OpenCV -- Sobel 算子(九)
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 算子(九)相关推荐
- Python OpenCV -- Laplacian 算子(十)
Laplacian 算子: 原理分析: Sobel 算子 : 在一个图像区域中的边缘部分,像素值出现"跳跃"或者较大的变化.如果在此边缘部分求取一阶导数,会看到极值的出现如图: ...
- opencv——Sobel算子与Scharr算子
目录 算子 边缘提取与梯度 边缘提取 Sobel算子 原理 API 代码展示 结果 优化代码 结果 Scharr算子 代码 结果 算子 狭义的算子实际上是指从一个函数空间到另一个函数空间(或它自身)的 ...
- python+OpenCV图像处理(九)图像金字塔
图像金字塔 图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构.图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步 ...
- 【CV】Sobel算子简介
引言 Sobel算子是一种常用的边缘检测算法,是一种离散性差分算子,用差分近似代替梯度.对x求1阶差分用来检测竖直边缘,同样的对y求1阶差分用来检测水平边缘. sobel算子对垂直和水平方向上的排列表 ...
- 利用sobel算子提取图像的水平特征和竖直特征
一. sobel滤波器介绍 sobel滤波器常用来提取灰度图像的水平边缘(水平特征)和竖直边缘(竖直特征) 二. sobel算子 纵向算子,提取图像水平边缘 ↑ 横向算子,提取图像竖直边缘 ↑ ...
- [图像处理] Python+OpenCV实现车牌区域识别及Sobel算子
由于最近太忙,这篇文章只给出相关代码供大家学习,过一段时间会详细的写一些列Python图像处理的文章,包括各种算法原理.图像识别.图像增强.图像分类.深度学习等.本篇文章主要调用OpenCV库(cv2 ...
- python+OpenCv笔记(十三):边缘检测——Sobel检测算子
Sobel检测算子 概述: Sobel边缘检测算法比较简单,实际应用中效率比canny边缘检测效率要高,但是边缘不如Canny检测的准确,但是很多实际应用的场合,sobel边缘却是首选,Sobel算子 ...
- 【OpenCV入门学习--python】索贝尔算子Sobel operator提取边缘
例子源于OpenCV官网手册(https://docs.opencv.org/4.x/d2/d2c/tutorial_sobel_derivatives.html) 使用OpenCV函数Sobel() ...
- python sobel算子_利用sobel算子计算图像的梯度(python+opencv)
sobel算子计算的梯度图是带有方向的 代码实现如下: #coding=utf-8 import cv2 import numpy as np #利用sobel算子计算图像的梯度 img=cv2.im ...
最新文章
- Nginx + Spring Boot 实现负载均衡
- 关于伺服驱动控制的课本_西门子伺服电机驱动系列汇总,说明书参数及使用方法。...
- Java EE 8中的MVC 1.0:使用Facelets入门
- UE4 多个static mesh合并成一个static mesh
- WinForm中的ListBox和ComboBox的使用
- 洛谷 P2341 [HAOI2006]受欢迎的牛
- Java微信公众平台开发(十五)--微信JSSDK的使用
- 顺无盘linux win10包,(2017.01.14)网维大师9.0.3.0无盘-xp-win7x32-x64-Win10x64公包
- 小度计算机笔记,开售告罄、口碑炸裂、高语音交互率的小度耳机全新升级语音笔记...
- Visual Studio MFC编程 程序调试时所遇到的问题及解决方法
- iPad——添加学校邮箱到邮件解决方案
- 计算机启动太慢可以设置什么来加速启动速度,电脑开机启动慢怎么办?教你4种设置方法,轻松加快win10开机速度!...
- ASP程序加密解密方法全面解析
- 我为什么放弃java学习Kotlin?
- C语言:开平方判断素数
- html style属性的用法
- windows下x265下载安装与配置
- 第十二届蓝桥杯国赛真题+题解 Python
- python类初始化返回实例_Python基础——类、实例及初始化
- superslide遇到jQuery(…).slide is not a function解决办法