当前位置: 首页 > news >正文

Python----计算机视觉处理(Opencv:梯度处理:filiter2D算子,Sobel,Laplacian)

一、图像梯度

        把图片想象成连续函数,因为边缘部 分的像素值是与旁边像素明显有区别的,所以对图片局部求极值,就可以得到整幅图片的边缘信息了。 不过图片是二维的离散函数,导数就变成了差分,这个差分就称为图像的梯度。

二、filter2D算子

ddepth:表示目标图像的所需深度。

kernel:卷积核(或相当于相关核),单通道浮点矩阵。

edge_ex_method:边缘检测的方向,upright:垂直,level:水平。 

三、Sobel算子

四、Laplacian算子

五、梯度处理

5.1、filter2D

导入模块

import cv2
import numpy as np

 输入图像

img=cv2.imread('shudu3.png')

 梯度处理 

kernel=np.array(
    [
        [-1,0,1],
        [-2,0,2],
        [-1,0,1]
    ]
)
img_filter2D=cv2.filter2D(img,-1,kernel=kernel)

 输出图像

cv2.imshow('img',img)
cv2.imshow('img_filter2D',img_filter2D)
cv2.waitKey(0)

完整代码 

import cv2
import numpy as np

img=cv2.imread('shudu3.png')

kernel=np.array(
    [
        [-1,0,1],
        [-2,0,2],
        [-1,0,1]
    ]
)
img_filter2D=cv2.filter2D(img,-1,kernel=kernel)

cv2.imshow('img',img)
cv2.imshow('img_filter2D',img_filter2D)
cv2.waitKey(0)

5.2、Sobel

导入模块

import cv2
import numpy as np

 输入图像

img=cv2.imread('shudu3.png')

 梯度处理 

img_Sobel=cv2.Sobel(img,-1,dx=1,dy=0)

输出图像 

cv2.imshow('img',img)
cv2.imshow('img_Sobel',img_Sobel)
cv2.waitKey(0)

完整代码 

import cv2


img=cv2.imread('shudu3.png')

img_Sobel=cv2.Sobel(img,-1,dx=1,dy=0)

cv2.imshow('img',img)
cv2.imshow('img_Sobel',img_Sobel)
cv2.waitKey(0)

5.3、Laplacian

导入模块

import cv2
import numpy as np

 输入图像

img=cv2.imread('shudu3.png')

 梯度处理 

img_Laplacian=cv2.Laplacian(img,-1)

输出图像 

cv2.imshow('img',img)
cv2.imshow('img_Laplacian',img_Laplacian)
cv2.waitKey(0)

完整代码 

import cv2

img=cv2.imread('shudu3.png')

img_Laplacian=cv2.Laplacian(img,-1)

cv2.imshow('img',img)
cv2.imshow('img_Laplacian',img_Laplacian)
cv2.waitKey(0)

六、库函数

6.1、filter2D

cv.filter2D(	src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]]	) ->	DST
方法描述
src输入图像
dst输出图像
ddepth目标图像的所需深度,请参阅组合
kernel卷积核(或者更确切地说是相关核),单通道浮点矩阵;如果要将不同的内核应用于不同的通道,请使用 Split 将图像拆分为单独的颜色平面,然后单独处理它们。
anchoranchor 的 anchor 表示 filtered 点在 kernel 中的相对位置;锚应位于内核内;默认值 (-1,-1) 表示定位点位于内核中心。
delta在将过滤的像素存储到 DST 之前添加到过滤像素的可选值。
borderType素外插方法,请参阅 BorderTypes。不支持BORDER_WRAP。

6.2、Sobel

cv.Sobel(	src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]]	) ->	dst
方法描述
src输入图像
dst输出图像
ddepth目标图像的所需深度,请参阅组合
dx导数 X 的阶数
dy导数 y 的阶数
ksize扩展 Sobel 核的大小;它必须是 1、3、5 或 7。
scale计算的导数值的可选比例因子;默认情况下,不应用缩放(有关详细信息,请参阅 getDerivKernels)。
delta在将过滤的像素存储到 DST 之前添加到过滤像素的可选值。
borderType素外插方法,请参阅 BorderTypes。不支持BORDER_WRAP。

6.3、Laplacian

cv.Laplacian(	src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]]	) ->	dst
方法描述
src输入图像
dst与 src 具有相同大小和相同通道数的目标图像。
ddepth目标图像的所需深度,请参阅组合。
ksize用于计算二阶导数滤波器的孔径大小。有关详细信息,请参阅 getDerivKernels。大小必须为正数和奇数。
scale计算的拉普拉斯值的可选比例因子。默认情况下,不应用缩放。有关详细信息,请参阅 getDerivKernels。
delta在将结果存储在 dst 中之前添加到结果中的可选 delta 值。
borderType像素外插方法,请参阅 BorderTypes。不支持BORDER_WRAP。

相关文章:

  • react中useRef和useMemo和useCallback
  • 常见框架漏洞--Spring
  • 部署Tomcat及jdk
  • Redis Sentinel 详解
  • linux的权限管理
  • 在 ASP.NET Core 中实现限流(Rate Limiting):保护服务免受滥用与攻击
  • Flask接口开发--POST接口
  • Linux(8.5)FTP
  • win32汇编环境,网络编程入门之十
  • C++实现决策树与随机森林调优困境:从性能瓶颈到高效突破
  • K8s 是什么? 基本元件、核心功能、4 大优点一次看!
  • 【差分隐私相关概念】一个问题的对偶转换
  • 【江协科技STM32】Unix时间戳BKP备份寄存器RTC实时时钟(学习笔记)
  • 基于SpringBoot的名著阅读网站
  • 【RHCE】综合实战练习
  • Unity 实现一个简易可拓展性的对话系统
  • deepseek搭建本地私有知识库dify安装介绍docker compose图文教程
  • Spring漏洞再现
  • 卷积神经网络 - 关于LeNet-5的若干问题的解释
  • 【机器学习/大模型/八股文 面经 (一)】
  • 默茨在德国联邦议院第一轮投票中未能当选总理
  • “五一”假期文旅热度创近3年新高,入境游订单飙升130%
  • 贵州游船侧翻248名消防员已在搜救
  • 环球马术冠军赛圆满落幕,是马术盛宴更是中国马产业强大引擎
  • 美国得克萨斯州发生5.4级地震,震源深度10千米
  • 塞尔维亚总统因突发健康问题,中断对美国的正式访问并回国