图像边缘检测-Roberts交叉算子

该博客介绍了如何利用Python中的PIL、numpy和matplotlib库实现Roberts交叉算子进行图像边缘检测。通过读取灰度图像,计算交叉算子的响应并设置阈值来突出边缘,最终展示检测结果。
摘要由CSDN通过智能技术生成

Roberts交叉算子程序实例
from PIL import Image, ImageFont
import numpy as np
import matplotlib.pyplot as pyplot
import pylab
im =Image.open(‘Bikesgray.jpg’)#记得要用灰度图,如果是彩色图需要转换成灰度图
im=im.convert(‘L’)
pyplot.imshow(im, cmap=pyplot.cm.gray)#输出图片可能颜色有问题,用cmap=pyplot.cm.gray进行改颜色还有方向问题,也可以通过调整
pylab.show()
x=np.array([[1,0],[0,-1]])
y=np.array([[1,0],[0,-1]])
w,h = im.size
res = np.zeros((w, h))#取一个和原图一样大小的图片,并在里面填充0
for x in range(w-1):
for y in range(h-1):
sub =[[im.getpixel((x, y)), im.getpixel((x, y+1))],[im.getpixel((x+1, y)), im.getpixel((x+1, y+1))]]#x,y代表像素的位置,而不是像素值,要从图片上得到像素值
sub = np.array(sub)#在python标准中list是不能做乘法,所以np.array()把list转就可以相乘
roberts_x = x
roberts_y = y
var_x =sum(sum(sub * roberts_x))#矩阵相乘,查看公式,我们要得到是一个值,所以对它进行两次相加
var

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值