图像运算和图像增强十一
创始人
2024-02-07 20:38:43
0

图像运算和图像增强十一

图像锐化之 Scharr、Canny、LOG 实现边缘检测

(1)Scharr算子
Scharr算子又称为Scharr滤波器,也是计算x或y方向上的图像差分。Scharr 算子的函数原型如下所示,和 Sobel 算子几乎一致,只是没有ksize 参数。
dst = Scharr(src, ddepth, dx, dy[, dst[, scale[, delta[,
borderType]]]]])

  • ddepth 表示目标图像所需的深度,针对不同的输入图像,输出目标图像有不同的深度
  • dx 表示 x 方向上的差分阶数,取值 1 或 0
  • dy 表示 y 方向上的差分阶数,取值 1 或 0
  • scale 表示缩放导数的比例常数,默认情况下没有伸缩系数
  • delta 表示将结果存入目标图像之前,添加到结果中的可选增量值
  • borderType 表示边框模式
import cv2 
import numpy as np
import matplotlib.pyplot as plt
#读取图像
img=cv2.imread('luo.png')
lenna_img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#灰度化处理图像
grayimage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#Schar算子
x=cv2.Scharr(grayimage,cv2.CV_32F,1,0)#X方向
y=cv2.Scharr(grayimage,cv2.CV_32F,0,1)#Y方向
absX=cv2.convertScaleAbs(x)
absY=cv2.convertScaleAbs(y)
Scharr=cv2.addWeighted(absX,0.5,absY,0.5,0)
#用来正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
#显示图形
titles=['原始图像','Scharr算子']
images=[lenna_img,Scharr]
for i in range(2):plt.subplot(1,2,i+1),plt.imshow(images[i],'gray')plt.title(title[i])plt.xticks([]),plt.yticks([])
plt.show()

在这里插入图片描述
(2)Cann算子
Canny算子的实现步骤如下:
第一步,使用高斯平滑去除噪声。
第二步,按照Sobel滤波器步骤计算梯度幅值和方向,寻找图像的强度梯度。
第三步,通过非极大值抑制(Non-maximum Suppression)过滤掉非边缘像素,将模糊的边界变得清晰。
第四步,利用双阈值方法来确定潜在的边界。
第五步,利用滞后技术来跟踪边界。
edges = Canny(image, threshold1, threshold2[, edges[,
apertureSize[, L2gradient]]])

import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread('luo.png')
lenna_img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
grayimage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#高斯滤波降噪
gaussia=cv2.GaussianBlur(grayimage,(3,3),0)
#Canny算子
Canny=cv2.Canny(gaussian,50,150)
#用来正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
#显示图形
titles=['原始图像','Canny算子']
images=[lenna_img,Canny]
for i in range(2):plt.subplot(1,2,i+1),plt.imshow(images[i],'gray')plt.title(title[i])plt.xticks([]),plt.yticks([])
plt.show()

在这里插入图片描述
(3)LOG算子
LOG 算子综合考虑了对噪声的抑制和对边缘的检测两个方面,并且把Gauss 平滑滤波器和 Laplacian 锐化滤波器结合了起来,先平滑掉噪声,再进行边缘检测,所以效果会更好。

import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread('luo.png')
lenna_img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
grayimage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#先通过高斯滤波降噪
gaussian = cv2.GaussianBlur(grayImage, (3,3), 0)
#再通过拉普拉斯算子做边缘检测
dst = cv2.Laplacian(gaussian, cv2.CV_16S, ksize = 3)
LOG = cv2.convertScaleAbs(dst)
#用来正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
#显示图形
titles = ['原始图像', 'LOG 算子'] 
images = [lenna_img, LOG] 
for i in range(2): plt.subplot(1,2,i+1), plt.imshow(images[i], 'gray') plt.title(titles[i]) plt.xticks([]),plt.yticks([]) 
plt.show()

在这里插入图片描述

相关内容

热门资讯

福建福州推出行政争议诉讼导入复... 法治日报讯 记者王莹 通讯员闵丹丹 日前,福建省福州市中级人民法院联合福州市司法局制定出台《行政争议...
河南通报10起涉网违法犯罪典型... 9月18日,河南省公安厅对外通报10起涉网违法犯罪典型案例。 一、商丘:破获一起非法购买他人信息进行...
太离谱!00后女主播上海生活2... 外地来沪女子王某 2月来到上海后 衣食住行几乎没花过一分钱 警方一查震惊了 怎么回事? 2025年4...
正业科技:制定《市值管理制度》... 证券之星消息,正业科技(300410)09月18日在投资者关系平台上答复投资者关心的问题。 投资者提...
江龙船艇:政策推动船舶更新替换 证券之星消息,江龙船艇(300589)09月18日在投资者关系平台上答复投资者关心的问题。 投资者提...
10起打击整治网络违法犯罪典型... “净网—2025”专项工作开展以来,按照公安部部署要求,各地公安机关聚焦人民群众反映强烈的突出网络违...
3100万元建设工程合同纠纷 ... 9月18日,中央商场(600280)发布公告,控股子公司海安润隆商业管理有限公司、江苏润地房地产开发...
今年以来江西警方累计侦办涉网违... 中新网南昌9月18日电 (记者 李韵涵)9月18日,记者从江西公安机关“净网”专项工作新闻发布会上了...
两部门印发关于育儿补贴制度管理... 钛媒体App 9月18日消息,国家卫生健康委办公厅、财政部办公厅印发关于育儿补贴制度管理规范(试行)...