opencv进行图片边缘提取(roberts)

本文介绍了如何利用OpenCV库中的Roberts算子对图像进行边缘提取,通过示例代码展示了该算法在图像处理中的应用。
摘要由CSDN通过智能技术生成

opencv进行图片边缘提取(roberts)

roberts算法是图像边缘提取的基础算法,下边的代码是该算法的实现,能够对一张图片进行边缘提取。

# roberts边缘提取算法
#各类提取算法大同小异:sobel可控制核的大小,对于n阶,设置窗口大小为n+1,涉及平滑算子(二项展开式的系数,即n的组合数)
#差分算子,由平滑算子n-2组合数补零从后向前差分而得
#n=5阶,平滑算子14641,差分算子013310差分得,120-2-1。
import numpy as np
import cv2
import math
import sys
from scipy import signal


def roberts(I, _boundry='full', _fillvalue=0):
    # 图像的高、宽
    H1, W1 = I.shape[0:2]
    # 卷积核的尺寸
    H2, W2 = 2, 2
    # 卷积核1及锚点位置
    R1 = np.array([[1, 0], [0, -1]], np.float32)
    kr1, kc1 = 0, 0
    # 计算full卷积
    IconR1 = signal.convolve2d(I, R1, mode='full', boundary=_boundry, fillvalue=_fillvalue)
    IconR1 = IconR1[H2 - kr1 - 1:H1 + H2 - kr1 - 1, W2 - kc1 - 1:W1 + W2 - kc1 - 1]
    # 卷积核2
    R2 = np.array([[0, 1], [-1, 0]], np.float32)
    # 锚点的位置
    kr2, kc2 = 0,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值