Python Roberts算子、Sobel算子——举例说明 ^_^

题目:Roberts算子

作用模板为:

Sobel算子

作用模板为:

设图像为:

  • 问题1:用Roberts算子对其进行锐化,写出锐化过程和结果。

解:

插播一条计算方法:

(图片来源:第7章 图像的锐化处理.ppt - 豆丁网 http://www.docin.com/p-456906827.html)

结果:

  • 问题2:用Sobel算子对其进行锐化,写出锐化过程和结果。

解:

插播一条计算方法:

(图片来源:第7章 图像的锐化处理.ppt - 豆丁网 http://www.docin.com/p-456906827.html)

import numpy as np
d=np.array([[3,3,3,3,3],[3,8,7,6,3],[3,6,0,5,3],[3,7,8,4,3],[3,8,3,3,3]])

def mySobel(myArray,x,y):
    Dx = (myArray[x+1,y-1]-myArray[x-1,y-1])+2*(myArray[x+1,y]-myArray[x-1,y])+(myArray[x+1,y+1]-myArray[x-1,y+1])
    Dy = (myArray[x-1,y+1]-myArray[x-1,y-1])+2*(myArray[x,y+1]-myArray[x,y-1])+(myArray[x+1,y+1]-myArray[x+1,y-1])
    r = (Dx**2+Dy**2)**0.5
    return r

for i in range(1,len(d)-1):
    for j in range(1,len(d)-1):
        print("({0},{1})→".format(i+1,j+1),int(mySobel(d,i,j)))

输出:

(2,2)→ 5
(2,3)→ 5
(2,4)→ 5
(3,2)→ 3
(3,3)→ 7
(3,4)→ 4
(4,2)→ 9
(4,3)→ 13
(4,4)→ 7

  • 30
    点赞
  • 151
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值