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

一、图像梯度

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

二、filter2D算子

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

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

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

三、Sobel算子

四、Laplacian算子

五、梯度处理

5.1、filter2D

导入模块

python 复制代码
import cv2
import numpy as np

输入图像

python 复制代码
img=cv2.imread('shudu3.png')

梯度处理

python 复制代码
kernel=np.array(
    [
        [-1,0,1],
        [-2,0,2],
        [-1,0,1]
    ]
)
img_filter2D=cv2.filter2D(img,-1,kernel=kernel)

输出图像

python 复制代码
cv2.imshow('img',img)
cv2.imshow('img_filter2D',img_filter2D)
cv2.waitKey(0)

完整代码

python 复制代码
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

导入模块

python 复制代码
import cv2
import numpy as np

输入图像

python 复制代码
img=cv2.imread('shudu3.png')

梯度处理

python 复制代码
img_Sobel=cv2.Sobel(img,-1,dx=1,dy=0)

输出图像

python 复制代码
cv2.imshow('img',img)
cv2.imshow('img_Sobel',img_Sobel)
cv2.waitKey(0)

完整代码

python 复制代码
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

导入模块

python 复制代码
import cv2
import numpy as np

输入图像

python 复制代码
img=cv2.imread('shudu3.png')

梯度处理

python 复制代码
img_Laplacian=cv2.Laplacian(img,-1)

输出图像

python 复制代码
cv2.imshow('img',img)
cv2.imshow('img_Laplacian',img_Laplacian)
cv2.waitKey(0)

完整代码

python 复制代码
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

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

6.2、Sobel

python 复制代码
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

python 复制代码
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
相关推荐
lovod几秒前
视觉SLAM十四讲合集
计算机视觉·slam·视觉slam·g2o·ba·位姿图
victory04319 分钟前
Gradio实现中英文切换,不影响页面状态,不得刷新页面情况下
人工智能
u01092727111 分钟前
使用XGBoost赢得Kaggle比赛
jvm·数据库·python
MediaTea18 分钟前
<span class=“js_title_inner“>Python:实例对象</span>
开发语言·前端·javascript·python·ecmascript
微光闪现25 分钟前
践行“科技向善”,微乐播捐赠108,888元助力唇腭裂儿童绽放笑容
人工智能
闵帆33 分钟前
反演学习器面临的鸿沟
人工智能·学习·机器学习
feasibility.35 分钟前
多模态模型Qwen3-VL在Llama-Factory中断LoRA微调训练+测试+导出+部署全流程--以具身智能数据集open-eqa为例
人工智能·python·大模型·nlp·llama·多模态·具身智能
我需要一个支点35 分钟前
douyin无水印视频下载
爬虫·python
喵手37 分钟前
Python爬虫实战:采集各大会展平台的展会名称、举办时间、展馆地点、主办方、行业分类等结构化数据(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集大会展平台信息·展会名称举办时间展馆地址·采集数据csv/json导出
编码者卢布1 小时前
【Azure APIM】如何实现对经过APIM并到达后端服务请求的全链路追踪呢?
python·flask·azure