一阶导数与Soble算子

二阶导数与拉普拉斯算子

图像边缘:

Soble算子:

二阶导数:

拉普拉斯算子:

import cv2 as cv
import numpy as np # 图像梯度(由x,y方向上的偏导数和偏移构成),有一阶导数(sobel算子)和二阶导数(Laplace算子)
# 用于求解图像边缘,一阶的极大值,二阶的零点
# 一阶偏导在图像中为一阶差分,再变成算子(即权值)与图像像素值乘积相加,二阶同理
def sobel_demo(image):
grad_x = cv.Sobel(image, cv.CV_32F, 1, 0) # 采用Scharr边缘更突出
grad_y = cv.Sobel(image, cv.CV_32F, 0, 1) gradx = cv.convertScaleAbs(grad_x) # 由于算完的图像有正有负,所以对其取绝对值
grady = cv.convertScaleAbs(grad_y) # 计算两个图像的权值和,dst = src1*alpha + src2*beta + gamma
gradxy = cv.addWeighted(gradx, 0.5, grady, 0.5, 0) cv.imshow("gradx", gradx)
cv.imshow("grady", grady)
cv.imshow("gradient", gradxy) def laplace_demo(image): # 二阶导数,边缘更细
dst = cv.Laplacian(image,cv.CV_32F)
lpls = cv.convertScaleAbs(dst)
cv.imshow("laplace_demo", lpls) def custom_laplace(image):
# 以下算子与上面的Laplace_demo()是一样的,增强采用np.array([[1, 1, 1], [1, -8, 1], [1, 1, 1]])
kernel = np.array([[1, 1, 1], [1, -8, 1], [1, 1, 1]])
dst = cv.filter2D(image, cv.CV_32F, kernel=kernel)
lpls = cv.convertScaleAbs(dst)
cv.imshow("custom_laplace", lpls) def main():
src = cv.imread("../images/lena.jpg")
cv.imshow("lena",src)
# sobel_demo(src)
laplace_demo(src)
custom_laplace(src)
cv.waitKey(0) # 等有键输入或者1000ms后自动将窗口消除,0表示只用键输入结束窗口
cv.destroyAllWindows() # 关闭所有窗口 if __name__ == '__main__':
main()

opencv python:图像梯度的更多相关文章

  1. 12、OpenCV Python 图像梯度

    __author__ = "WSX" import cv2 as cv import numpy as np def lapalian_demo(image): #拉普拉斯算子 # ...

  2. opencv:图像梯度

    常见的图像梯度算子: 一阶导数算子: #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; ...

  3. opencv python 图像二值化/简单阈值化/大津阈值法

    pip install matplotlib 1简单的阈值化 cv2.threshold第一个参数是源图像,它应该是灰度图像. 第二个参数是用于对像素值进行分类的阈值, 第三个参数是maxVal,它表 ...

  4. 11、OpenCV Python 图像金字塔

    __author__ = "WSX" import cv2 as cv import numpy as np # 高斯金字塔 #金字塔 原理 ==> 高斯模糊+ 降采样 #金 ...

  5. 10、OpenCV Python 图像二值化

    __author__ = "WSX" import cv2 as cv import numpy as np #-----------二值化(黑0和白 255)---------- ...

  6. 8、OpenCV Python 图像直方图

    __author__ = "WSX" import cv2 as cv import numpy as np from matplotlib import pyplot as pl ...

  7. 1、OpenCV Python 图像加载和保存

    __author__ = "WSX" import cv2 as cv # 这里的文件是图片或者视频 def Save_File( image ): cv.imwrite(&quo ...

  8. 2、OpenCV Python 图像属性获取

    __author__ = "WSX" import cv2 as cv import numpy as np image = cv.imread("1.JPG" ...

  9. Python+OpenCV图像处理(十二)—— 图像梯度

    简介:图像梯度可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导. Sobel算子是普通一阶差分,是基于寻找梯度强度.拉普拉斯算子(二阶差分)是基于过零点检测.通过计算梯度,设置阀值, ...

随机推荐

  1. AcWing 1020. 潜水员 二维费用背包

    //体积最多是j 全部为0,v>=0 //体积恰好为j f[0][0]=0,f[i]=无穷,v>=0 //体积至少是j f[0][0]=0,f[i]=无穷,体积为负数时于0取大 #incl ...

  2. Linux - Shell - 字符串截取

    概述 简述 字符串 截取 背景 之前因为要给文件 批量重命名, 做过字符串截取 当时做好了, 也说了要写点东西 结果忘了 现在又要尝试批量 重命名 才发现之前的东西已经忘了好多 要是当时把博客写下来, ...

  3. linux 扩展内存

    一.逻辑卷创建使用 https://www.cnblogs.com/xiaoluo501395377/archive/2013/05/24/3096087.html fdisk -l pvcreate ...

  4. t-SNE

    Don't look back. Don't hesitate, just do it. t-SNE原理 from here. 1. tsne is strictly used for visuali ...

  5. 用apscheduler写python定时脚本

    apscheduler 官方文档:http://apscheduler.readthedocs.io/en/latest/ 写一个后台定时任务,一般2个选择,一个是apscheduler,一个cele ...

  6. ERROR EPERM: operation not permitted, mkdir 'C:\Users\Administrator\Desktop\text\nuxt\basic\.nuxt\components'

    C:\Users\Administrator\Desktop\text\nuxt>cd basic C:\Users\Administrator\Desktop\text\nuxt\basic& ...

  7. ieee-explore文献免费下载办法

    假设文献网址为:http://ieeexplore.ieee.org/document/xxxxxxx/ 下载保存的话,改为http://ieeexplore.ieee.org.sci-hub.tw/ ...

  8. Java 浮点数精度控制

    1.String.format​(String format,Object… args) Java中用String.format()来控制输出精度, format参数用来设置精度格式, args参数代 ...

  9. DSP---TI CCSv5.5.x-Windows安装

    TI CCSv5.5.x(正式版)-Windows版本 国内2013年9月13日首发安装CCSv5.5图示 *请关掉防火墙及杀毒软件进行安装 第一步 第二步 安装程序检测到挂起的重新启动,这可能在安装 ...

  10. 滑雪(dfs+dp)

    滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 113903   Accepted: 43478 Description ...