当前位置: 首页 > news >正文

python opencv3

三、图像预处理2

1、图像滤波

        为图像滤波通过滤波器得到另一个图像。也就是加深图像之间的间隙,增强视觉效果;也可以模糊化间隙,造成图像的噪点被抹平。

2、卷积核

        在深度学习中,卷积核越大,看到的信息越多,提取的特征越好,同时计算量越大。

        卷积核一般为奇数,为了保证锚点处于中间。

3、图像平滑处理

        ‌图像噪声‌是指存在于图像数据中的不必要的或多余的干扰信息。它妨碍了人们通过视觉器官对接收信息的理解。噪声在理论上可以定义为“不可预测,只能用概率统计方法来认识的随机误差”。因此,将图像噪声看成是多维随机过程是合适的,描述噪声的方法可以借用随机过程的描述,即用其概率分布函数和概率密度分布函数。

3.1、高斯滤波

        高斯滤波是图像处理中常用的一种平滑滤波方法,其主要作用是去除图像中的噪声,并减少图像细节,以实现图像的平滑处理。

        cv2.GaussianBlur(src, ksize, sigmaX) :ksize:高斯核的大小,通常以元组 (width, height) 形式指定;sigmaX:高斯核在 x 方向上的标准差。

ksize = (11, 11)
sigma = 1
blurrred_image = cv2.GaussianBlur(img, ksize, sigma)

3.2、双边滤波

        通过考虑像素点的空间距离和灰度差异,实现了对图像进行平滑的同时,尽量保留图像的边缘细节。

        cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace) :d:滤波器的直径,用于指定在每个像素周围考虑的像素邻域大小,一般为正奇数;sigmaColor:颜色空间的标准差,用于控制滤波过程中颜色相似性的权重(较大时,在更大范围内进行平滑处理,导致图像细节的丢失较多 );sigmaSpace:坐标空间的标准差,用于控制滤波过程中空间相似性的权重(较大时,在更大的空间范围内进行平滑处理,导致图像的局部细节被进一步平滑 )。

c = 19
color = 3
space = 17
b_img = cv2.bilateralFilter(img, c, space, color)

3.3、中值 滤波

       因为椒盐噪声或脉冲噪声的灰度值通常远远偏离周围像素的灰度值,通过中值滤波可以有效地将这些异常值去除,从而使图像变得更加平滑。

       cv2.medianBlur(src, ksize) :ksize 是用于中值滤波的孔径大小,必须是大于1的奇数。

c = 5
m_img = cv2.medianBlur(img, c)

4、图像边缘检测

        Canny边缘检测

        cv2.Canny(image, threshold1, threshold2):threshold1: 第一个阈值,用于边缘检测的低阈值;threshold2: 第二个阈值,用于边缘检测的高阈值;返回检测到的边缘图像,边缘部分为白色,其他部分为黑色。

import cv2
image = cv2.imread("images/car.png")
# 从BGR到灰度图像
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Canny
edges = cv2.Canny(image, 200, 300)
cv2.imshow('边缘检测', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

5、图像形态学操作

        主要用于提取图像中的有用特征,如边界检测、噪声去除等;常见的形态学操作包括腐蚀、膨胀、开运算、闭运算、梯度、顶帽和黑帽等

5.1、腐蚀

        减少图像中白色区域的大小,常用于消除小的白色噪声点。

        eroded = cv2.erode(src, kernel, dst,iterations=1):kernel: 结构元素,用于定义腐蚀操作的方式,是一个矩阵结构数据;dst (可选): 输出图像,默认自动创建一个新的图像;iterations (可选): 腐蚀操作的迭代次数,默认为1。

k = np.ones((5, 5), np.uint8)
num = 2
e_img = cv2.erode(img, k, iterations=num)

5.2、膨胀

       与腐蚀相反,它会增加图像中白色区域的大小。

        dilated = cv2.dilate(src, kernel, iterations=1)

5.3、开运算

        先腐蚀后膨胀的过程,常用于去除小的物体、平滑较大的物体边界以及填充细长的突出部分。

        cv2.morphologyEx(img, cv2.MORPH_OPEN,kernel)

5.4、闭运算

        先膨胀后腐蚀的过程,常用于填充前景物体中的小洞, 平滑较大物体的边界以及连接邻近的物体。

        cv2.morphologyEx(img, cv2.MORPH_CLOSE,kernel)

5.5、形态学梯度

        计算膨胀后的图像与腐蚀后的图像之间的差值,突出物体的边缘。

        cv2.morphologyEx(src, cv2.MORPH_GRADIENT, kernel)

5.6、顶帽

        原图像与开运算结果的差值,用于获取图像中的亮细节。

        cv2.morphologyEx(src, cv2.MORPH_TOPHAT, kernel)

5.7、黑帽

        闭运算结果与原图像的差值,用于获取图像中的暗细节。

        cv2.morphologyEx(src, cv2.MORPH_BLACKHAT, kernel)

相关文章:

python opencv3

三、图像预处理2 1、图像滤波 为图像滤波通过滤波器得到另一个图像。也就是加深图像之间的间隙,增强视觉效果;也可以模糊化间隙,造成图像的噪点被抹平。 2、卷积核 在深度学习中,卷积核越大,看到的信息越多&#xff0…...

git原理与上传

言: git是一个软件,gitee/github是一个网站,这里有什么联系吗?我们身为一个程序员不可能不知道github,但是毕竟这是外国的网站,我们不翻墙的情况下,是无法访问的(或者就是太慢了,或…...

LeetCode:633. 平方数之和(Java)

633. 平方数之和 题目描述: 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 b2 c 。 示例 1: 输入:c 5 输出:true 解释:1 * 1 2 * 2 5示例 2: 输入&#xf…...

linux查看端口状态的命令合集

linux查看端口状态的命令合集 直接使用 netstat 命令 如果你不需要超级用户权限,可以直接运行 netstat 命令: netstat -tuln 使用 ss 命令 ss 是一个更现代的工具,通常不需要超级用户权限就能查看端口信息。你可以尝试使用 ss 命令&#xff…...

幼儿园篮球游戏

题目描述: 幼儿园里有一个放倒的圆桶,它是一个 线性结构,允许在桶的右边将篮球放入,可以在桶的左边和右边将篮球取出。每个篮球有单独的编号,老师可以连续放入一个或多个篮球,小朋友可以在桶左边或右边将篮…...

Android编译环境构建(二)(可用于物理机、虚拟机、容器化Jenkins环境)

文章目录 需求环境要求文件下载Gradle Version:7.5cmdline-tools至此普通物理环境的Android编译环境已部署完毕 部署maven(可选)Jenkins配置Android构建环境 说明: 物理环境:物理机、虚拟机等 容器化环境:docker等 需求 Gradle Version:7.5 …...

Web服务器(实验)

目录 nginx实验1(快速建站)实验2(更换默认网页目录)实验3(内网穿透花生壳)实验4(综合nginx)实验5(基于不同IP的虚拟主机网站)实验6(基于不同端口号…...

【湖南-常德】《市级信息化建设项目初步设计方案编制规范和支出预算编制标准(试行)》-省市费用标准解读系列05

《市级信息化建设项目初步设计方案编制规范和支出预算编制标准(试行)》(常行审 〔2023〕7号)标准是湖南省常德市行政审批服务局、常德市财政局2023年12月29日发布的费用标准(了解更多可直接关注我们咨询)。…...

微信小程序 https://pcapi-xiaotuxian-front-devtest.itheima.net 不在以下 request 合法域名

微信小程序在调用接口的时候出现以上报错,接口没有问题,是因为小程序自动校验了合法域名 打开本地设置: 勾选不校验合法域名,即可 效果如下:...

vue什么时候渲染旧的VDOM,什么时候渲染新的VDOM

在 Vue 中,决定渲染旧的 VDOM 还是新的 VDOM 的关键在于组件的数据变化和 Vue 的响应式系统。一些常见的情况可以帮助理解这个过程: 1. 渲染新 VDOM 的情况 数据变化:当组件的响应式数据(如 data、props 或计算属性)发…...

【Qwen2技术报告分析】从模型架构 数据构建和模型评估出发

目录 前言 一、Tokenizer 二、模型结构 dense模型 MoE模型 模型参数设置 三、Pre-Training Pre-Training DATA LONG-CONTEXT TRAINING 四、Post-Training Post-Training DATA 人工数据注释(collaborative data annotation) 自动数据合成&a…...

Naive UI 选择器 Select 的:render-option怎么使用(Vue3 + TS)(鼠标悬停该条数据的时候展示全部内容)

项目场景&#xff1a; 在渲染select选择器后&#xff0c;当文字过长的时候&#xff0c;多出来的部分会显示成省略号&#xff0c;这使我们不能很清晰的看到该条数据的完整信息&#xff0c;就需要加一个鼠标悬停展示完整内容。 解决方案&#xff1a; vue代码&#xff1a; <n…...

使用Mac如何才能提高OCR与翻译的效率

OCR与截图大家都不陌生&#xff0c;或许有的朋友对于这两项功能用到的不多&#xff0c;但是如果经常会用到的话&#xff0c;那你就该看看了 iOCR&#xff0c;快捷键唤出翻译窗口&#xff0c;不论是截图翻译、划词翻译、输入翻译、剪切板翻译&#xff0c;统统快捷键完成&#x…...

QML----复制指定下标的ListModel数据

我现在有一个写好的listmodel,我需要从里边抽取35个数据作为展示 头文件 #ifndef GETONEPAGESIZEMEMBERLISTMODEL_H #define GETONEPAGESIZEMEMBERLISTMODEL_H#include <QObject> #include <QAbstractListModel> #include <QDebug> #include "mylistm…...

CSS Text(文本)

CSS Text(文本) CSS Text 是一种用于控制网页中文本显示样式的技术。通过使用 CSS Text 属性,开发者可以轻松地调整文本的字体、大小、颜色、对齐方式等,从而实现更加美观和个性化的网页设计。本文将详细介绍 CSS Text 的各种属性及其应用方法。 一、字体属性 1. font-fam…...

聊一聊Spring中的@Transactional注解【下】【注解失效场景】

前言 尽管 Transactional 注解在 Spring 中提供了方便的事务管理功能&#xff0c;我们在使用过程中却常常面临其失效的问题。事务失效可能导致意想不到的数据状态和错误&#xff0c;影响应用的稳定性和可靠性。本文将探讨一些常见的 Transactional 失效场景&#xff0c;包括异常…...

对称加密与非堆成加密

http通信有一些什么问题 窃听 - 对称加密传递密钥 - 非对称加密安全速度 - 非对称加密 对称加密中间人攻击 - 证书证书伪造 - 消息摘要摘要伪造 - 数字签名 可能被窃听 http本身不具备加密功能&#xff0c;http报文使用明文方式发送 还可能存在验证问题 无法确认发送到的…...

江协科技STM32学习- P28 USART串口数据包

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…...

Linux脚本循环(for、while、until)

文章目录 for基础风格for列表风格for与seq组合for与大括号for循环处理脚本参数组合命令while基础while数字累加utilcontinue for基础风格 这种风格最像高级程序中的for循环 #!/bin/bashfor(( i0; i<10; i )) doecho "第$i次for循环" donefor列表风格 #!/bin/ba…...

文件系统上云的挑战

优质博文&#xff1a;IT-BLOG-CN 一、挑战/注意事项 【1】因文件系统HDFS没有关联信息OrderId等&#xff0c;不能对存量数据进行有策略的同步&#xff0c;因此目前是将所有的文件同步至云服务器SIN&#xff1b; 【2】海外数据和国内数据上传到各自的文件服务器后&#xff0c;…...

【北京迅为】《STM32MP157开发板嵌入式开发指南》-第七十一章 制作Ubuntu文件系统

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器&#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构&#xff0c;主频650M、1G内存、8G存储&#xff0c;核心板采用工业级板对板连接器&#xff0c;高可靠&#xff0c;牢固耐…...

中间件漏洞总结

参考&#xff1a;Tomcat漏洞详解-CSDN博客 tomcat 历史漏洞 阿里云漏洞库 (aliyun.com) 弱口令和war远程部署漏洞 弱口令 Tomcat8.* 登录页面&#xff1a;/manager/html 弱口令&#xff1a;tomcat/tomcat 后台Getshell 登录到后台后可以通过部署 war 包进行 getshell wa…...

PySpark Yarn集群模式

目录 简介 一、PySpark简介 二、YARN模式概述 三、配置环境 1. 安装与配置Spark 2. 配置Hadoop和YARN 3. 启动yarn 四、编写PySpark脚本 五、提交PySpark作业到YARN 参数解释&#xff1a; 六、常见问题及解决 七、总结 简介 随着大数据的普及&#xff0c;Spark作为…...

Matlab基于经纬度点并行提取指定日期的tiff栅格位置的值

文章目录 前言一、基本说明二、代码 前言 该 MATLAB 代码用于从 GeoTIFF 文件中提取基于特定地理位置&#xff08;经纬度&#xff09;和日期的某个点的相关数据。代码首先读取一个包含事件数据&#xff08;日期、经纬度&#xff09;的 Excel 文件&#xff0c;然后根据日期和位…...

npm入门教程19:npm包管理

一、代码更新 遵循语义化版本控制&#xff1a; 在更新包时&#xff0c;应遵循语义化版本控制&#xff08;Semantic Versioning&#xff0c;简称SemVer&#xff09;规范。这意味着版本号的变更应反映代码变更的程度&#xff0c;通常遵循主版本号.次版本号.修订号的格式。主版本号…...

【NOIP提高组】虫食算

【NOIP提高组】虫食算 C语言C &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 所谓虫食算&#xff0c;就是原先的算式中有一部分被虫子啃掉了&#xff0c;需要我们根据剩下的数字来判定被啃掉的字母。来看一个简单的例子&#xff1a; 43#98…...

软件测试面试题个人总结

前面看到了一些面试题&#xff0c;总感觉会用得到&#xff0c;但是看一遍又记不住&#xff0c;所以我把面试题都整合在一起&#xff0c;都是来自各路大佬的分享&#xff0c;为了方便以后自己需要的时候刷一刷&#xff0c;不用再到处找题&#xff0c;今天把自己整理的这些面试题…...

HTML 语法规范——代码注释、缩进与格式、标签与属性、字符编码等

文章目录 一、代码注释1.1 使用注释的主要目的1.2 使用建议二、标签的使用2.1 开始标签和结束标签2.2 自闭合标签2.3 标签的嵌套2.4 标签的有效性三、属性四、缩进与格式4.1 一致的缩进4.2 元素单独占用一行4.3 嵌套元素的缩进4.4 避免冗长的行五、字符编码六、小结在开发 HTML…...

【Wi-Fi】WiFi中QAM及16-QAM、64-QAM、512-QAM、1024-QAM、2048-QAM、4096-QAM整理

参考链接 什么是QAM&#xff1f;QAM是如何工作的&#xff1f; - 华为 不同阶QAM调制星座图中&#xff0c;符号能量的归一化计算原理 - 知乎 16 QAM modulation vs 64 QAM modulation vs 256 QAM modulation 512 QAM vs 1024 QAM vs 2048 QAM vs 4096 QAM modulation type…...

红黑树的平衡之舞:数据结构中的优雅艺术

文章目录 前言&#x1f680;一、红黑树的介绍1.1 红黑树的概念1.2 红黑树的特点1.3 红黑树的性质 &#x1f680;二、红黑树结点的定义&#x1f680;三、红黑树的框架&#x1f680;四、旋转操作&#x1f680;五、红黑树的插入操作5.1 uncle结点存在且为红5.2 uncle结点不存在或者…...