[python opencv 计算机视觉零基础到实战] 九、模糊

1_bit 2021-01-20 21:04:50
计算机 Python OpenCV 计算 算机


一、学习目标

  1. 了解什么是卷积
  2. 了解模糊的使用方法与应用

如有错误欢迎指出~

二、了解模糊的应用

上一篇:[python opencv 计算机视觉零基础到实战] 八、ROI泛洪填充

2.1 了解卷积是什么

在本节中,卷积我们不过多的进行深入讲解,我本人对卷积也只是稍有理解,不敢过多的编写太深的内容。在OpenCV中的模糊操作中,模糊需要用到卷积,在此引入贾志刚老师对于OpenCV的基本卷积的讲解。
以下是一个基本卷积的图示,第一列是一维数组中每一个位置的值。其中111我们称为卷积核。通过卷积核与一维数组进行计算最终将会得到蓝最下面的蓝色方块内的值。第一位我们照着写下,蓝色区域为1,蓝色方块内的第二个值为2,是如何得到的呢?很简单,用卷积核的每一个数乘上淡青蓝色的内容,那就是11,21,15,随后将它们进行相加,除以卷积核的步长,也就是3。这是就可以写成(11+21+15)/3等于2,余数为2,我们只取整数部分。之后的计算也是如此,包括二维的数据进行计算也是根据一维的计算原理一致。

2.2 均值模糊

在OpenCV中均值模糊使用blur函数,blur函数一般使用可以接收2个参数,一个是src为输入的图像,一个是ksize为卷积核大小;卷积核大小可以给予一个矩阵,如上图所属的111是1行3列的卷积核,那么就可以写为(1,3)。模糊都可以去进行去噪操作,不同的模糊对于不同的噪点有不同的效果。均值模糊一般可以用在随机噪点的图片中,可以很好的去除噪点。

首先我们引入一张图片:

import cv2
img = cv2.imread(r"C:\Users\Administrator\Desktop\2.jpg")
cv2.imshow("img", img)

随后使用blur均值模糊函数对图片进行降噪:

blur_img=cv2.blur(img,(2,24))#图片去噪

blur函数第一个参数是img,为我们即将要处理的图片,第二个参数是(2,24),表示创建一个2行24列的卷积核进行卷积。最后显示图片并且进行等待,完整代码如下:

import cv2
img = cv2.imread(r"C:\Users\Administrator\Desktop\3.jpg")
cv2.imshow("img", img)
blur_img=cv2.blur(img,(2,24))#图片去噪
cv2.imshow("blur_img", blur_img)
cv2.waitKey (0)#等待关闭
cv2.destroyAllWindows()#destroy

我们可以从图片中看到,原图是存在一定的噪点,但是进行均值模糊后会变淡很多,但是图片会有一定模糊。

2.3 中值模糊

中值模糊使用medianBlur函数,medianBlur一般接收2个参数,一个是待处理的图片,还有一个是核的大小,规定为大于1的奇数,例如3、5、7…
现在我有一张有椒盐噪点的图片:

中值模糊对于该类型的图片进行降噪效果十分显著。由于大多数代码已经讲解过,在此不再赘述,直接贴上代码:

import cv2
img = cv2.imread(r"C:\Users\Administrator\Desktop\2.jpg")
cv2.imshow("img", img)
median_blur_img=cv2.medianBlur(img,5)
cv2.imshow("median_blur_img", median_blur_img)
cv2.waitKey (0)#等待关闭
cv2.destroyAllWindows()#destroy

以上代码中使用了medianBlur中值模糊方法,传入了照片,并且给予了核大小值5,该值越大,则越模糊。结果如下:

2.4 锐化

在OpenCV中我们可以自定义内核对图像进行卷积,内核也有几种不同标准的内容,可以给图像进行卷积后达到一些指定的效果。自定义对内核进行卷积使用filter2D函数。函数原型如下:

cv.filter2D(src, ddepth, kernel)

src为待处理的图像;ddepth一般使用为-1,表示与原图像具有相同的深度;kernel为卷积核,为单通道浮点矩阵;由于我们进行初步使用直接使用一般的卷积核,这个时候直接传入固定数据即可,所以再次并不进行深度说明。

进行锐化的卷积核为:

kernel=np.array([[0,-1,0],
[-1,5,-1],
[0,-1,0]],np.float32)

传入至filter2D函数则为:

cv2.filter2D(blur_img, -1, kernel)

现在我们将一个受到均值模糊的图片使用filter2D函数进行锐化处理,完整代码如下:

import cv2
import numpy as np
img = cv2.imread(r"C:\Users\Administrator\Desktop\4.jpg")
cv2.imshow("img", img)
blur_img=cv2.blur(img,(1,6))#图片去噪
cv2.imshow("blur_img", blur_img)
kernel=np.array([[0,-1,0],[-1,5,-1],[0,-1,0]],np.float32)
dst = cv2.filter2D(blur_img, -1, kernel)
cv2.imshow("dst", dst)
cv2.waitKey (0)#等待关闭
cv2.destroyAllWindows()#destroy

以上代码中blur_img,是均值模糊后的图片,我们将blur_img传入值filter2D函数中使用指定的卷积核进行锐化,最后得到dst图像数据。结果如下:
均值模糊:

锐化处理:

从图片的结果可以看出,进行均值模糊后,再进行锐化,该图片的编译将得到加深。

2.4 浮雕

矩阵:

kernel=np.array([[-2,-1,0],
[-1,1,1],
[0,1,2]],np.float32)


有点鬼畜,不要笑。

2.5 大纲

矩阵:

kernel=np.array([[-1,-1,-1],
[-1,8,-1],
[-1,-1,-1]],np.float32)

2.6 拉普拉斯算子

矩阵:

kernel=np.array([[0,1,0],
[1,-4,1],
[0,1,0]],np.float32)

2.7 分身原图

矩阵:

kernel=np.array([[0,0,0],
[0,1,0],
[0,0,0]],np.float32)

在这里插入图片描述
该系列文章首发于ebaina

三、总结

  1. 了解了卷积卷积的运算方式
  2. 了解多种模糊的使用方法
  3. 了解了中值模糊对于椒盐噪点有很好的去噪效果
版权声明
本文为[1_bit]所创,转载请带上原文链接,感谢
https://i1bit.blog.csdn.net/article/details/111932955

  1. A series of problems and solutions in Java calling Python
  2. python自动化爬取淘宝商品数据导入execl表格
  3. Using Python to automatically punch in the pin / enterprise wechat
  4. 【分享】python+requests接口测试基础
  5. Python automatically crawls Taobao product data and imports it into excel table
  6. C++/Python描述 628. 三个数的最大乘积
  7. Python的容器有哪些?分别有什么作用?
  8. python+requests接口测试基础
  9. 20 行代码:Serverless 架构下用 Python 轻松搞定图像分类和预测
  10. python+requests接口测试基础
  11. [share] Python + requests interface test foundation
  12. C + + / Python description 628. Maximum product of three numbers
  13. What are Python containers and what are their functions?
  14. Testing foundation of Python + requests interface
  15. 20 lines of code: easy to do image classification and prediction with Python under serverless architecture
  16. Python爬取优质高清壁纸网站:彼岸
  17. Testing foundation of Python + requests interface
  18. 【人生苦短,我学 Python】基础篇——列表(Day8)
  19. Python crawls high quality HD Wallpaper website: the other side
  20. Python图像增强与特效-利用百度AI进行黑白图像上色
  21. 【七天搞定Python】day01.Python环境配置、pip、IDE、注释、变量,数据类型、标识符/关键字、输出、输入
  22. Life is short, I learn Python
  23. Python image enhancement and special effects - using Baidu AI to color black and white images
  24. Python environment configuration, Pip, IDE, comment, variable, data type, identifier / keyword, output, input
  25. 为什么说Python是最伟大的语言?看图就知道了 - 知乎
  26. Why is Python the greatest language? Just look at the picture. - Zhihu
  27. 通过创建视频游戏来学习 Python
  28. Learn Python by creating video games
  29. Python3版本下创建计算给定日期范围内工作日方法
  30. Creating a method to calculate working days within a given date range in Python 3
  31. 图解爬虫,用几个最简单的例子带你入门Python爬虫
  32. Graphical crawler, with a few of the simplest examples to take you to the introduction of Python crawler
  33. python+requests基础知识
  34. Basic knowledge of Python + requests
  35. python自定义windowsr日志支持文件分割
  36. python+requests基础知识
  37. Python custom Windowsr log supports file segmentation
  38. Basic knowledge of Python + requests
  39. 高级测试 | Python笔试题
  40. 火了!开源的 Python 抢票神器,过年回家就看这一波了!
  41. Python 爬虫进阶 - 前后端分离有什么了不起,过程超详细!
  42. 【python】使用pip提示ModuleNotFoundError
  43. 【python】虚拟环境搭建
  44. Advanced test | Python written test questions
  45. Fire! Open source Python ticket grabbing artifact, come home to see this wave of New Year!
  46. Python crawler advanced - before and after the end of the separation of what great, super detailed process!
  47. [Python] prompt modulenotfounderror with PIP
  48. Building a virtual environment
  49. Serverless 架构下用 Python 轻松搞定图像分类和预测
  50. Easy image classification and prediction with Python under serverless architecture
  51. python协程爬取某网站的老赖数据
  52. Python coroutine crawls Laolai data of a website
  53. 使用Python分析姿态估计数据集COCO的教程
  54. Using Python to analyze the data set coco of attitude estimation
  55. win环境 python3 flask 上手整理 环境搭建(一)
  56. Getting started with win environment python3 flash
  57. Python实现一个论文下载器,赶紧收藏
  58. win环境 python3 flask 上手整理 快速上手-基础操作(二)
  59. Python 中常见的配置文件写法
  60. Python to achieve a paper Downloader, quickly collect