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 相关文章推荐
python打开网页和暂停实例
Sep 30 Python
Python中Collections模块的Counter容器类使用教程
May 31 Python
Python算法应用实战之队列详解
Feb 04 Python
Python实现 多进程导入CSV数据到 MySQL
Feb 26 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
Python合并同一个文件夹下所有PDF文件的方法
Mar 11 Python
python实现高斯(Gauss)迭代法的例子
Nov 20 Python
Pytoch之torchvision.transforms图像变换实例
Dec 30 Python
Python Flask上下文管理机制实例解析
Mar 16 Python
pandas取dataframe特定行列的实现方法
May 24 Python
python 利用PyAutoGUI快速构建自动化操作脚本
May 31 Python
Pytorch反向传播中的细节-计算梯度时的默认累加操作
Jun 05 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
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
2013/09/30 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
2014/09/24 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
限制文本字节数js代码
2007/03/06 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
Nodejs进程管理模块forever详解
2014/06/01 NodeJs
JavaScript的Date()方法使用详解
2015/06/09 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
Python生成密码库功能示例
2017/05/23 Python
查看django版本的方法分享
2018/05/14 Python
Python对象属性自动更新操作示例
2018/06/15 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
英国香水店:The Perfume Shop
2017/03/27 全球购物
精彩的大学生自我评价
2013/11/17 职场文书
门诊挂号室室长岗位职责
2013/11/27 职场文书
幼儿园教师工作制度
2014/01/22 职场文书
仓管岗位职责范本
2014/02/08 职场文书
清明节扫墓活动总结
2015/02/09 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python