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

day12 - 图像修复

在图像处理的过程中,经常会遇到图像存在多余的线条或者噪声的情况,对于这种情况我们会先对图像进行预处理,去除掉对图形内容有影响的噪声,在进行后续的处理。

本节实验我们介绍使用图像膨胀来处理图形的多余线条,进行图像修复。

完成本期内容,你可以:

  • 了解图像膨胀的原理和应用

  • 掌握使用图像膨胀操作的使用

若要运行案例代码,你需要有:

  • 操作系统:Ubuntu 16 以上 或者 Windows10

  • 工具软件:VScode 或者其他源码编辑器

  • 硬件环境:无特殊要求

  • 核心库:python 3.6.13, opencv-contrib-python 3.4.11.39,opencv-python 3.4.2.16

点击下载源码


膨胀

OpenCV将膨胀操作封装成了cv2.dilate()方法。

函数原型:dst = cv2.dilate(src, kernel, anchor, iterations, borderType, borderValue)
dst为输出图像。

参数描述如下:

  • src:被处理的图像
  • kernel:膨胀使用的核
  • anchor:可选参数,锚点的位置
  • iterations:可选参数,膨胀操作的迭代次数,默认值为1
  • borderType:可选参数,边界样式,建议采用默认值
  • borderValue:可选参数,边界值,建议采用默认值

具体步骤

1. 创建项目结构

创建项目名为图像修复,项目根目录下新建code文件夹储存代码,新建dataset文件夹储存数据,项目结构如下:

图像修复                                # 项目名称
├── code                               # 储存代码文件
├── dataset                            # 储存数据文件

注:如项目结构已存在,无需再创建。

2. 对图像进行修复

  1. code文件夹下创建repair.py文件;
  2. 导入所需的库,OpenCV、numpy;
  3. 读取dataset文件夹下的repair.png图片,并进行展示;
  4. 创建一个3*3的都为1 的数组作为滤波核;
  5. 对图像进行膨胀处理,并展示结果;

代码实现

# 导入OpenCV、numpy
import cv2
import numpy as np# 读取原图
img = cv2.imread("../dataset/repair.png")
cv2.imshow("original",img)# 创建3*3的数组作为核
k = np.ones((3, 3), np.uint8)
# 膨胀操作
dst = cv2.dilate(img, k)
cv2.imshow("dilate",dst)cv2.waitKey()
cv2.destroyAllWindows()

请添加图片描述

效果截图

经过膨胀操作之后,图像中的多余的线条都已经去掉了,虽然膨胀操作会造成图像原图模糊,边缘变粗,但是并没有改变图像的特征其他的处理来减弱图像模糊带来的影响。

点击下载源码

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

相关文章:

  • 1720_Linux学习中的问题处理
  • 七人拼团系统开发模式详解
  • CPU性能优化:分支预测
  • 过滤器Filter,拦截器Interceptor
  • kafka整理
  • 为什么有些情况下需要重写equals()和hashCode()方法?
  • 14-Vue技术栈之Vue3快速上手
  • JavaScript高级三、深入面向对象
  • static
  • zabbix动作执行失败 No media defined for user.
  • JavaScript this 关键字
  • ubuntu基本信息查询
  • Revit问题:创建牛腿柱和快速生成圈梁
  • k8s节点删除
  • 45°装备系统
  • 逻辑漏洞学习-身份验证漏洞
  • 【ChatGPT】ChatGPT自动生成思维导图
  • cf1200构造15道
  • 【JavaSE】Java基础语法(十七)
  • 《Spring Guides系列学习》guide11 - guide15
  • 软件测试面试了一个00后,让我见识到了什么是内卷届的天花板
  • JAVA BigDecimal 比较大小 、计算
  • 并发编程Bug的根源
  • 从零搭建微服务-认证中心(二)
  • python入门(11)面向对象 :模块与包
  • 《深入理解计算机系统(CSAPP)》第3章 程序的机器级表示 - 学习笔记
  • 【数据结构】第六周
  • 6.4.6拓扑排序
  • Ae:常用内置抠像效果
  • [ 支付宝支付笔记]