OpenCV函数

Sobel(src_gray,grad_x/grad_y,ddepth,x_order,y_order,scale,delta,BORDER_DEFAULT )

Scharr( )

边缘检测

为何要求导,如下图:

假设需要检测图中的边缘,可以看到在边缘像素值显著改变,灰度值跃升

利用一阶导数可以清晰喊道跃升(高峰值)

从以上推论,检测边缘可以通过定位梯度值大于邻域的像素的方法找到(或者推广到大于一个阈值)

Sobel算子

Sobel算子是一个邻域微分算子(discrete differentiation operator)。它用来计算图像灰度函数的近似梯度。

Sobel算子结合了高斯平滑和微分求导。

计算

假设源图像为I

在两个方向求导

水平变化:将I与一个奇数内核Gx进行卷积。比如,当内核大小为3时,Gx的计算结果为:

垂直变化:将I与一个奇数大小的内核Gy进行卷积:

在图像的每一点,结合以上两个结果求出近似梯度。

当内核大小为3时,Sobel内核可能产生比较明显的误差(毕竟Sobel算子只求取了倒数的近似值),为解决这一个问题,

OpenCV提供了另一个Scharr函数,该函数仅作用于大小为3的内核。该函数的运算与Sobel函数一样快,但结果更精确。

其内核为:

#include <opencv2/opencv.hpp>
#include <iostream>
#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
using namespace cv; int main() {
Mat src, src_gray;
Mat grad;
char* window_name =(char*)"Sobel Demo-Simple Edge Detector";
int scale = ;
int delta = ;
int ddepth = CV_16S;
int c; //装载图像
src = imread("D:\\Pic\\4141.jpg");
if (!src.data) {
return -;
}
GaussianBlur(src, src, Size(, ), , , BORDER_DEFAULT); //转为灰度图
cvtColor(src, src_gray, CV_RGB2GRAY); //创建显示窗口
Mat grad_x, grad_y;
Mat abs_grad_x, abs_grad_y; //求x方向梯度
Sobel(src_gray, grad_x, ddepth, , , , scale, delta, BORDER_DEFAULT);
convertScaleAbs(grad_x, abs_grad_x); //求y方向梯度
Sobel(src_gray, grad_y, ddepth, , , , scale, delta, BORDER_DEFAULT);
convertScaleAbs(grad_y, abs_grad_y); //合并梯度
addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, , grad); imshow(window_name, grad);
waitKey(); return ;
}

2.7 Sobel导数的更多相关文章

  1. Sobel导数

    Sobel 导数 目标 本文档尝试解答如下问题: 如何使用OpenCV函数 Sobel 对图像求导. 如何使用OpenCV函数 Scharr 更准确地计算  核的导数. 原理 Note 以下内容来自于 ...

  2. OpenCV Sobel 导数

    #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #i ...

  3. opencv-学习笔记(6)图像梯度Sobel以及canny边缘检测

    opencv-学习笔记(6)图像梯度Sobel以及canny边缘检测 这章讲了 sobel算子 scharr算子 Laplacion拉普拉斯算子 图像深度问题 Canny检测 图像梯度 sobel算子 ...

  4. 2.opencv图像处理常用操作

    图像的平滑处理 平滑,也称 模糊, 平滑处理时需要用到一个滤波器 .滤波器想象成一个包含加权系数的窗口,这个加权系数也叫做核或者模版. // 图像平滑处理分而学之.cpp : 定义控制台应用程序的入口 ...

  5. 【OpenCV新手教程第14】OpenCVHough变换:霍夫变换线,霍夫变换圆汇编

    本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/26977557 作者:毛星云(浅墨) ...

  6. SciPy模块应用

    1.图像模糊  图像的高斯模糊是非常经典的图像卷积例子.本质上,图像模糊就是将(灰度)图像I 和一个高斯核进行卷积操作:,其中是标准差为σ的二维高斯核.高斯模糊通常是其他图像处理操作的一部分,比如图像 ...

  7. [OpenCV-Python] OpenCV 中的图像处理 部分 IV (二)

    部分 IVOpenCV 中的图像处理 OpenCV-Python 中文教程(搬运)目录 16 图像平滑 目标 • 学习使用不同的低通滤波器对图像进行模糊 • 使用自定义的滤波器对图像进行卷积(2D 卷 ...

  8. [OpenCV-Python] OpenCV 中机器学习 部分 VIII

    部分 VIII机器学习 OpenCV-Python 中文教程(搬运)目录 46 K 近邻(k-Nearest Neighbour ) 46.1 理解 K 近邻目标 • 本节我们要理解 k 近邻(kNN ...

  9. OpenCV常用库函数[典]

    一.core 模块 1.Mat - 基本图像容器 Mat 是一个类,由两个数据部分组成:矩阵头(包含矩阵尺寸,存储方法,存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法的不同矩阵可以是 ...

随机推荐

  1. 【zookeeper】使用场景

    以下场景是我认为的zookeeper可能会大显身手的场景. 场景1:配置新增和更新 我们可以将zookeeper部署成一个配置服务,实现配置的存储和发布等功能. 具体的原理是:zookeeper可以按 ...

  2. ubuntu下安装mysql及常用操作

    1.可通过ps -ef | grep mysql命令查看系统中是否有安装mysql 如果出现类似上述的页面,就证明是已经安装过了mysql,否则就是没有. 2.安装mysql 很简单,只需要键入如下命 ...

  3. SpringCloud 启动时报No active profile set, falling back to default profiles default

    这在Spring程序启动时没有找到默认的配置文件所引发的错误,默认文件application.yml如下图:  一般在项目中都会有多个,如有正式环境.测试环境等.如下图: 根据上面这种多个配置的只需要 ...

  4. 使用python语言计算n的阶乘

    计算“1x2x3x4” def factorial(n): result = n ,n): result *= i return resultdef main(): print factorial(4 ...

  5. 微信小程序填坑之路

    图片处理 三个小方法仅供参考1.将图片转成base64编码,可以使用代码来转换,当然我才不愿意特意写代码转,我懒,献上一个在线图片转base64的地址:http://tool.css-js.com/b ...

  6. 在ubuntu16.04编译安装httperf

    在网上偶尔看到httperf可以在测试中使用.网上苦苦找不到ubuntu编译安装的方法.自己琢磨了一下,现在总结如下: apt install httperf vim /etc/security/li ...

  7. 内置函数 hashlib configparser logging 模块 C/S B/S架构

    1.内置函数 # 内置的方法有很多 # 不一定全都在object中 # class Classes: # def __init__(self,name): # self.name = name # s ...

  8. Linux_(2)基本命令(下)

    六.文件搜索命令11 :which功能描述:显示系统命令所在目录命令所在路径:/usr/bin/which执行权限:所有用户语法:which [命令名称]范例:$ which ls 12 :find功 ...

  9. layer.confirm在ASP.NET控件onclick上面的应用方法

    有些时候,你可能要修改控件的事件,元素本身.等,这个时候如何操作呢?下面提供一个思路: <asp:LinkButton Visible="false" ID="sh ...

  10. Liunx history

    Linux中history历史命令使用方法详解   (转) 作者:青藤园来源:|2012-05-10 10:     http://os.51cto.com/art/201205/335040.htm ...