python 用opencv实现图像修复和图像金字塔


Posted in Python onNovember 27, 2020

我们将学习如何通过一种称为修复的方法去除旧照片中的小噪音,笔画等。基本思路很简单:用相邻像素替换那些坏标记,使其看起来像邻域。

cv2.inpaint()

  • cv2.INPAINT_TELEA
  • cv2.INPAINT_NS
import numpy as np
import cv2 as cv

img = cv.imread('messi_2.jpg')
mask = cv.imread('mask2.png',0)

dst = cv.inpaint(img,mask,3,cv.INPAINT_TELEA)

cv.imshow('dst',dst)
cv.waitKey(0)
cv.destroyAllWindows()

第一张图显示降级输入,第二个图像是面具,第三个图像是第一个算法的结果,最后一个图像是第二个算法的结果。

python 用opencv实现图像修复和图像金字塔

图像金字塔

通常,我们曾经使用恒定大小的图像.但在某些情况下,我们需要使用不同分辨率的(相同)图像.例如,在搜索图像中的某些内容时,如脸部,我们不确定该对象在所述图像中的大小.

具有不同分辨率的图像被称为图像金字塔(因为当它们保持在堆叠中,底部具有最高分辨率图像而顶部具有最低分辨率图像时,它看起来像金字塔).

图像金字塔有两种:

  1. 高斯金字塔和
  2. 拉普拉斯金字塔

高斯金字塔的顶部是通过将底部图像中的连续的行和列去除得到的.顶部图像中的每个像素值等于下一层图像中 5 个像素的高斯加权平均值.这样操作一次一个 MxN 的图像就变成了一个 M/2xN/2 的图像。所以这幅图像的面积就变为原来图像面积的四分之一.这被称为an Octave(一个八度)。连续进行这样的操作就会得到一个分辨率不断下降的图像金字塔.

函数cv2.pyrDown()从一个高分辨率大尺寸的图像向上构建一个金子塔 (尺寸变小,分辨率降低).
代码:

import cv2

img = cv2.imread('img.jpg')

lower_reso = cv2.pyrDown(img)

cv2.imshow('src',img)
cv2.imshow('HigherReso',lower_reso)

cv2.waitKey()

python 用opencv实现图像修复和图像金字塔

继续使用函数cv2.pyrUp()从一个低分辨率小尺寸的图像向下构建一个金子塔(尺寸变大,但分辨率不会增加)
代码:

import cv2

img = cv2.imread('img.jpg')

lower_reso = cv2.pyrDown(img)
higher_reso2 = cv2.pyrUp(lower_reso)

cv2.imshow('show',higher_reso2)

cv2.waitKey()

python 用opencv实现图像修复和图像金字塔

NOTE:

当用 cv2.pyrDown(),图像的分辨率就会降低,信息就会被丢失.如果先cv2.pyrDown()产生的中间图像再使用函数cv2.pyrUp()得到图像,与原图像相比分辨率差了很多.
可以修改代码:

import cv2

img = cv2.imread('img.jpg')

higher_reso2 = cv2.pyrUp(img)
lower_reso = cv2.pyrDown(higher_reso2)


cv2.imshow('show',lower_reso)

cv2.waitKey()

拉普拉斯金字塔由高斯金字塔形成,大部分元素都是零,用于图像压缩.
代码:

import cv2

img = cv2.imread('img.jpg')
img = cv2.Canny(img, 100, 200)

higher_reso2 = cv2.pyrUp(img)
lower_reso = cv2.pyrDown(higher_reso2)

cv2.imshow('src',img)
cv2.imshow('higher_reso2',higher_reso2)
cv2.imshow('lower_reso',lower_reso)

cv2.waitKey()

python 用opencv实现图像修复和图像金字塔

以上就是python 用opencv实现图像修复和图像金字塔的详细内容,更多关于python 图像修复和图像金字塔的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
pycharm安装图文教程
May 02 Python
Python基于回溯法子集树模板解决数字组合问题实例
Sep 02 Python
Python OpenCV实现图片上输出中文
Jan 22 Python
python判断设备是否联网的方法
Jun 29 Python
Pycharm更换python解释器的方法
Oct 29 Python
Python 通过调用接口获取公交信息的实例
Dec 17 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
Python能做什么
Jun 02 Python
python爬虫使用requests发送post请求示例详解
Aug 05 Python
Python+OpenCV图像处理——图像二值化的实现
Oct 24 Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 04 Python
Python函数调用追踪实现代码
Nov 27 #Python
Numpy中np.max的用法及np.maximum区别
Nov 27 #Python
python 实现aes256加密
Nov 27 #Python
pandas使用函数批量处理数据(map、apply、applymap)
Nov 27 #Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 27 #Python
Python基于template实现字符串替换
Nov 27 #Python
使用Python画了一棵圣诞树的实例代码
Nov 27 #Python
You might like
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
理解 JavaScript 预解析
2009/10/25 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
[41:08]TNC vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中字典映射类型的学习教程
2015/08/20 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
通过python爬虫赚钱的方法
2019/01/29 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
Python使用Matlab命令过程解析
2020/06/04 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
护理学毕业生自荐信
2013/10/02 职场文书
大学生就业自我鉴定
2013/10/26 职场文书
学生个人的自我评价分享
2013/11/05 职场文书
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
社区工作者先进事迹
2014/01/18 职场文书
学子宴答谢词
2014/01/25 职场文书
家长会学生演讲稿
2014/04/26 职场文书
公司委托书格式范本
2014/09/16 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
升学宴学生致辞
2015/09/29 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang