python图像处理(十一)——图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子、Laplacian算子

在图像增强过程中,通常利用各类图像平滑算法消除噪声,图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像边缘信息也主要集中在其高频部分。这将导致原始图像在平滑处理之后,图像边缘和图像轮廓模糊的情况出现。为了减少这类不利效果的影响,就需要利用图像锐化技术,使图像的边缘变得清晰。

 

一、Roberts算子

Roberts算子又称交叉微分算法,它是基于交叉差分的梯度算法,通过局部差分计算检测边缘线条,常来处理具有陡峭的低噪声图像,当图像边缘接近于正负45,处理效果最佳。缺点是对边缘定位信息不太准确,提取的边缘线条较粗。Roberts算子模板分为水平方向和垂直方向。

在python中Roberts算子主要是通过Numpy定义模板,再调用OpenCV中的filter2D()函数实现边缘提取,该函数主要是利用内核实现对图像的卷积运算,其函数原型如下:

dst=cv.filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]])

参数如下:

src 原图像
dst 目标图像,与原图像尺寸和通过数相同
ddepth 目标图像的所需深度
kernel 卷积核(或相当于相关核),单通道浮点矩阵;如果要将不同的内核应用于不同的通道,请使用拆分将图像拆分为单独的颜色平面,然后单独处理它们。
anchor 内核的锚点,指示内核中过滤点的相对位置;锚应位于内核中;默认值(-1,-1)表示锚位于内核中心。
detal 在将它们存储在dst中之前,将可选值添加到已过滤的像素中。类似于偏置。
borderType 像素外推法,参见BorderTypes

Roberts算法代码如下所示:

import cv2
import matplotlib.pyplot as plt
import numpy as np

#读取图像
image = cv2.imread('E:/pythonProject/12.png')
lena = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

#灰度转化处理
grayImage = 
  • 18
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Roberts算子是一种简单的边缘检测算法,它是基于图像中像素灰度值的方差来检测边缘的。Roberts算子包括两个2x2的卷积核,一个用于检测水平方向的边缘,另一个用于检测垂直方向的边缘。与其他边缘检测算法相比,Roberts算子的计算速度很快,但是它的检测精度较低。 在Roberts算子中,阈值的选取也需要根据具体的应用场景来确定。通常情况下,可以通过试验找到一个合适的阈值来实现边缘检测。常用的方法是使用双阈值法,即将梯度幅值图像中低于一个阈值的像素点标记为非边缘点,将高于另一个阈值的像素点标记为边缘点,而位于两个阈值之间的像素点则根据其与周围像素点的关系来判断是否为边缘点。 在MATLAB中,可以使用im2bw函数将梯度幅值图像转为二值图像,并通过调整阈值来实现边缘检测。以下是使用Roberts算子对一张图像进行边缘检测,并使用双阈值法将图像转为二值图像的MATLAB代码示例: ```matlab % 读入图像 I = imread('image.jpg'); % 转为灰度图像 Igray = rgb2gray(I); % Roberts算子卷积核 RobertsX = [1 0; 0 -1]; RobertsY = [0 1; -1 0]; % 对图像进行卷积操作 Ix = conv2(double(Igray), RobertsX, 'same'); Iy = conv2(double(Igray), RobertsY, 'same'); % 计算梯度幅值 Igrad = sqrt(Ix.^2 + Iy.^2); % 双阈值法转为二值图像 Ibw = im2bw(Igrad, 0.1); Iedge = edge(Ibw, 'canny'); % 显示结果 subplot(1, 2, 1); imshow(I); title('原图'); subplot(1, 2, 2); imshow(Iedge); title('Roberts算子边缘检测结果'); ``` 在这段代码中,我们先使用Roberts算子计算出梯度幅值图像Igrad,然后使用im2bw函数将其转为二值图像Ibw,阈值为0.1。接着使用MATLAB中的edge函数对二值图像进行Canny边缘检测,并显示结果。通过调整阈值0.1,可以得到不同的边缘检测效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值