图像运算和图像增强十一

news2024/11/29 2:28:03

图像运算和图像增强十一

图像锐化之 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()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/26610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务器的区别跟服务器被攻击了怎么解决

大陆服务器都是需要备案的,想必这是众所周知的,备案的过程繁琐且严格。除此之外,备案还有期限的限制,若网站没有在规定的期限内完成备案,可能会导致我们不能在相应的时间内完成建站。而海外服务器是不存在备案的问题的…

【读论文】DIVFusion: Darkness-free infrared and visible image fusion

【读论文】DIVFusion: Darkness-free infrared and visible image fusion介绍网络结构SIDNet损失函数TCEFNetGRM(梯度保持模块)CEM(对比度增强模块)损失函数总结参考论文:https://www.sciencedirect.com/science/artic…

IPv6与VoIP——ipv6接口标识与VoIP概述

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.ipv6接口标识符 1.IPv6接口标识符有以下几种 基于EUI-64地址…

[附源码]java毕业设计校园一卡通管理信息系统台

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Go:交互式提示工具go-prompt简介

文章目录简介一、代码示例二、使用go-prompt的项目三、特性1. 强大的自动完成2. 灵活的功能选项3. 快捷键4. 历史记录5. 跨平台支持小结简介 受python提示工具包的启发,在Go中构建强大的交互式提示 一、代码示例 package mainimport ("fmt""githu…

Oracle在Logstash需求中碰到的问题处理方式

Oracle对空值(NULL)的5种处理 在公司Logstash相关需求中,为了方便sql语句更加简洁,所以需要使用到Oracle中的视图,在视图创建过程中,遇到有关对Null值的处理,这里做一个整理,方便日后查询 COALESCE函数 COALESCE(expr1,expr2,expr3&#x…

【python】PyQt5的环境搭建和使用

什么是pyQT pyqt是一个用于创建GUI应用程序的跨平台工具包,它将python与qt库融为一体。也就是说,pyqt允许使用python语言调用qt库中的API。这样做的最大好处就是在保存了qt高运行效率的同时,大大提高开发效率。因为,使用python语…

【Spring Cloud实战】SpringCloud Sleuth分布式请求链路跟踪

gitee地址:https://gitee.com/javaxiaobear/spring-cloud_study.git 在线阅读地址:https://javaxiaobear.gitee.io/ 1、概述 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果&…

HTML5期末大作业 HTML+CSS+JavaScript美食坊美食购物主题(15页)

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

数据上云,如何解除用户对厂商监守自盗的担忧?

企业数字化转型中,安全从来都是企业用户最为关心和敏感的问题之一。对于数据上云,很多企业持保留态度。作为数字化转型服务商,如何解除用户对厂商监守自盗的担忧? 1.敏感的数据安全与用户的普遍认识 企业用户普遍对数据安全是极其…

湖北绝缘监测仪矿业煤炭石油金矿玉矿铁矿铜矿矿井钢厂

安科瑞 华楠 自第一次工业革命开始,人类社会进入工业时代。随着工业科技的发展,漏电流对工业生产安全构成了很大的威胁。为了提高供电的连续性、可靠性和安全性,许多重要生产场所也采用了IT配电系统(不接地供电系统)。…

使用CyberController来将旧手机改造成电脑外挂------手机交互翻译、人脸解锁、语音识别....各个功能等你来探索

文章目录前言操作PC端安装Python环境调试代码设置开机启动HMS Core API申请注册账号创建应用填写基本信息填写应用信息软件图标应用的截图应用分类API信息设置添加对应的包名勾选机器学习服务复制API信息将JSON信息保存下来安卓端安装开发工具修改源码克隆项目打开项目修改包名…

水滴邮件营销:让企业营销更简单

企业在利用邮件开发客户、推广产品的时候,最终目的是想产生转化,获得收益。邮件营销有他得天独厚的优势,它为买卖双方提供了一个交流平台,并且只要收件人同意,企业就可以长期对其进行个性化营销。这为企业积累长期忠实…

缘来交友网站的设计与实现(源码+数据库+论文+开题报告+说明文档)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

DDANet: Dual Decoder Attention Network for Automatic Polyp Segmentation

双decoder用于息肉分割。文章的创新点在与使用了双分支的decoder,单encoder的结构。decoder的第二个分支会产生注意力map,在代码中体现为输出通道为1。这个和之前看的confidence map很像。 看一下文章的结构图: 在decoder中,第二…

小米手机买什么蓝牙耳机好?适配小米手机的蓝牙耳机推荐

作为一位音乐爱好者,拥有一款好的耳机是非常重要的。无线蓝牙耳机的出现就为喜欢听音乐的伙伴们提供了一个很好的选择,既不会有耳朵的胀痛,也不会影响享受音乐的体验,小米手机近几年也是深受大众欢迎,因此,…

【数据结构Note5】-二叉排序树 BST和平衡二叉树AVL

二叉排序树BST 二叉排序树&#xff0c;又称二叉查找树&#xff08;BST&#xff0c;Binary Search Tree&#xff09; 二叉排序树是左子树节点值<根节点值<右子树节点值的二叉树 所以对二叉排序树进行中序遍历会得到一个递增的序列&#xff08;左子树-根-右子树&#xff09…

nginx实战

目录反向代理去掉前缀场景1&#xff1a;去掉一层前缀场景2&#xff1a;去掉两层前缀返回固定json增加后缀映射情况一情况二情况三情况四正向代理负载均衡正则匹配~ /item/(\d)反向代理 通过Nginx我们可以实现反向代理&#xff0c;这也是我在项目中使用到的一个功能&#xff0c…

20221122非累加的m3u8的ts切片列表的补全步骤

20221122非累加的m3u8的ts切片列表的补全步骤 2022/11/22 19:07 https://apppy87xs3b3950.h5.xiaoeknow.com/v2/course/alive/l_6374b6d0e4b0edc794f61031?type2&app_idapppy87xs3b3950&availabletrue&share_user_idu_61333670aabd8_rizBVXTg2F&share_type5&a…

从零开始的图像语义分割:FCN快速复现教程(Pytorch+CityScapes数据集)

从零开始的图像语义分割&#xff1a;FCN复现教程&#xff08;PytorchCityScapes数据集&#xff09;前言一、图像分割开山之作FCN二、代码及数据集获取1.源项目代码2.CityScapes数据集三、代码复现1.数据预处理2.代码修改3.运行结果总结参考网站前言 摆了两周&#xff0c;突然觉…