当前位置: 首页 > 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)

http://www.lryc.cn/news/476821.html

相关文章:

  • git原理与上传
  • LeetCode:633. 平方数之和(Java)
  • linux查看端口状态的命令合集
  • 幼儿园篮球游戏
  • Android编译环境构建(二)(可用于物理机、虚拟机、容器化Jenkins环境)
  • Web服务器(实验)
  • 【湖南-常德】《市级信息化建设项目初步设计方案编制规范和支出预算编制标准(试行)》-省市费用标准解读系列05
  • 微信小程序 https://pcapi-xiaotuxian-front-devtest.itheima.net 不在以下 request 合法域名
  • vue什么时候渲染旧的VDOM,什么时候渲染新的VDOM
  • 【Qwen2技术报告分析】从模型架构 数据构建和模型评估出发
  • Naive UI 选择器 Select 的:render-option怎么使用(Vue3 + TS)(鼠标悬停该条数据的时候展示全部内容)
  • 使用Mac如何才能提高OCR与翻译的效率
  • QML----复制指定下标的ListModel数据
  • CSS Text(文本)
  • 聊一聊Spring中的@Transactional注解【下】【注解失效场景】
  • 对称加密与非堆成加密
  • 江协科技STM32学习- P28 USART串口数据包
  • Linux脚本循环(for、while、until)
  • 文件系统上云的挑战
  • 【北京迅为】《STM32MP157开发板嵌入式开发指南》-第七十一章 制作Ubuntu文件系统
  • 中间件漏洞总结
  • PySpark Yarn集群模式
  • Matlab基于经纬度点并行提取指定日期的tiff栅格位置的值
  • npm入门教程19:npm包管理
  • 【NOIP提高组】虫食算
  • 软件测试面试题个人总结
  • HTML 语法规范——代码注释、缩进与格式、标签与属性、字符编码等
  • 【Wi-Fi】WiFi中QAM及16-QAM、64-QAM、512-QAM、1024-QAM、2048-QAM、4096-QAM整理
  • 红黑树的平衡之舞:数据结构中的优雅艺术
  • angular实现list列表和翻页效果