sobel算子计算的梯度图是带有方向的

代码实现如下:

#coding=utf-8

import cv2

import numpy as np

#利用sobel算子计算图像的梯度

img=cv2.imread("3.jpg",cv2.IMREAD_UNCHANGED) #读入一副图像,其中包括alpha的值 imread_unchanged

#cv2.sobel(src,ddepth,dx,dy,[ksize]) ddepth表示图像的深度,

# 当处理为8位图像时,当梯度小于0时,会自动变成0,造成边界图像丢失

#一般设置为cv2.CV_64F

sobelx=cv2.Sobel(img,cv2.CV_64F,dx=1,dy=0) #x方向的

#使cv2.convertScaleAbs()函数将结果转化为原来的uint8的形式

sobelx=cv2.convertScaleAbs(sobelx)

sobely=cv2.Sobel(img,cv2.CV_64F,dx=0,dy=1) #y方向的

sobely=cv2.convertScaleAbs(sobely)

result=cv2.addWeighted(sobelx,0.5,sobely,0.5,0) #x方向和y方向的梯度权重

cv2.imshow("Original",img)

cv2.imshow("sobelx",sobelx)

cv2.imshow("sobely",sobely)

cv2.imshow("result",result)

cv2.waitKey()

cv2.destroyAllWindows()

同样,也可以使用laplacian算子求解图像的梯度图

第一个参数是需要处理的图像;

第二个参数是图像的深度,-1表示采用的是与原图像相同的深度。目标图像的深度必须大于等于原图像的深度;

在上述代码中加入:

#laplacian算子,ksize是算子的大小,必须为1、3、5、7。默认为1

lap = cv2.Laplacian(img,cv2.CV_16S,ksize = 3)

#用convertScaleAbs()函数将其转回原来的uint8形式

laplacian = cv2.convertScaleAbs(lap)

cv2.imshow('laplacian img',laplacian)

#高斯滤波器对图像降噪,横向和纵向滤波系数为0

gaussianblur = cv2.GaussianBlur(img,(3,3),0)

python sobel算子_利用sobel算子计算图像的梯度(python+opencv)相关推荐

  1. python目标识别代码_利用ImageAI库只需几行python代码超简实现目标检测

    什么是目标检测 目标检测关注图像中特定的物体目标,需要同时解决解决定位(localization) + 识别(Recognition).相比分类,检测给出的是对图片前景和背景的理解,我们需要从背景中分 ...

  2. python log函数_求你别再花大价钱学 Python 之爬虫实战

    引子 Python 基本概念 Python 优势和劣势 优势 Python 的劣势 Python 安装设置 Python 基本语法 程序例子 Python 基本语法 Python 爬虫实现 爬虫相关 ...

  3. Python的IDE:利用MyEclipse2017软件的PyDev插件实现Python编程

    Python的IDE:利用MyEclipse2017软件的PyDev插件实现Python编程 目录 下载PyDev插件 T1.高版本 T2.低版本 最后,综合思路如下 加载PyDev插件 下载PyDe ...

  4. 2.2 获取图像感兴趣区域_基于Hu距的图像旋转矫正之OpenCV实现

    目录 1.常见图像旋转矫正方法 1.1 基于图像边缘轮廓的旋转矫正 1.2 基于傅里叶变换以及霍夫直线检测的旋转矫正 2.基于Hu距图像旋转矫正 2.1 Hu旋转不变性 2.2 实现步骤 2.2.1 ...

  5. ITK:高斯的一阶导数进行卷积来计算图像的梯度

    ITK:高斯的一阶导数进行卷积来计算图像的梯度 内容提要 输出结果 C++实现代码 内容提要 通过与高斯的一阶导数进行卷积来计算图像的梯度. GradientRecursiveGaussianImag ...

  6. python计算密集型提速_利用Cython加速计算密集型python任务

    何为计算密集型任务 下面贴上网上找到的描述计算密集型任务的特点是要进行大量的计算,消耗CPU资源,比如计算圆周率.对视频进行高清解码等等,全靠CPU的运算能力.这种计算密集型任务虽然也可以用多任务完成 ...

  7. python怎么计算曲面的表面积_利用simpson积分公式计算曲面表面积

    利用 simpson 积分公式计算曲面表面积 夏军剑 ; 张新巍 ; 李维伟 [期刊名称] <科技资讯> [年 ( 卷 ), 期] 2014(012)008 [摘要] 二重积分的数值算法比 ...

  8. opencv roberts算子_边缘检测 Roberts算子

    Roberts算子是一种最简单的算子,利用局部差分算子寻找边缘的算子.采用对角线相邻两像素之差近似梯度幅值检测边缘..检测垂直边缘的效果比斜向边缘要好,定位精度高,对噪声比较敏感,无法抑制噪声的影响. ...

  9. python网页信息_利用python处理网页信息

    在前几周的grep/sed/awk实战中提到,"和CoreSite - Any2 California接入商建立网络BGP邻居关系.从peeringdb上找到了所有接入商的信息,但是转移信息 ...

最新文章

  1. Kerberos协议
  2. OnItemClickListener,OnScrollListener应用
  3. python图形化编程工具哪个好_mPython(图形化编程软件) V0.5.0 官方版
  4. 南京南站新建的,地铁换乘这么麻烦?
  5. hfss和matlab,matlab-hfss联合仿真教程(初学)--第一节(利用MATLAB编写脚本建立HFSS工程)...
  6. pxe无盘服务器教程,Windows下架设PXE服务器的方法
  7. Android 高德地图自定义InfoWindow
  8. sudo rosdep init 出现 ERROR: cannot download default sources list from:错误解决方法
  9. 阿里云如何设置content-type,微软的在线预览无法使用问题
  10. 地理地貌3D打印案例
  11. Latex角度输入(°)
  12. gensim numpy spicy等词云图制作库的安装方法(着重后期)
  13. 分布式--CAP定理
  14. vb6.0可以编译c语言嘛,编译器的问题? vb6.0 VS visual studio 2012
  15. vue为什么要用脚手架?
  16. 新手教程—— Mac电脑如何正确断网
  17. 用python定义两个元组_python学习笔记2---python中表示“组”的概念与定义
  18. 一次SQL如何查重,去重小记
  19. 为什么你的CLion不能编译运行
  20. Java实现“三天打鱼两天晒网”

热门文章

  1. Javaweb四大作用域详解
  2. 解决node.js-opensslErrorStack: [ ‘error:03000086:digital envelope routines::initialization error‘ ]错误
  3. WPF学习第二集-XMAL概览
  4. Vue 登录login例子
  5. Python字符串与时间相互转换
  6. 关于视频直播云服务,这几点你不得不知
  7. TCP/IP网络知识面试问题
  8. VulnHub-Tr0II
  9. 2023全新FL Studio 21中文版水果编曲制作软件下载安装教程
  10. httpd端口信息只显示 tcp6,修改为tcp4