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 相关文章推荐
基于hashlib模块--加密(详解)
Jun 21 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
Dec 19 Python
pandas将numpy数组写入到csv的实例
Jul 04 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
python 多进程并行编程 ProcessPoolExecutor的实现
Oct 11 Python
Pytorch Tensor基本数学运算详解
Dec 30 Python
Python优秀开源项目Rich源码解析的流程分析
Jul 06 Python
Python3爬虫里关于代理的设置总结
Jul 30 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 Python
Django windows使用Apache实现部署流程解析
Oct 12 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
PHPEXCEL 使用小记
2013/01/06 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
PHP实现验证码校验功能
2017/11/16 PHP
asp 的 分词实现代码
2007/05/24 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
微信小程序实现点击页面出现文字
2020/09/21 Javascript
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
[58:15]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 NB vs Liquid
2018/04/02 DOTA
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
django表单实现下拉框的示例讲解
2018/05/29 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
python中提高pip install速度
2020/02/14 Python
Python ATM功能实现代码实例
2020/03/19 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
深入了解Python enumerate和zip
2020/07/16 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
英文版网络工程师求职信
2013/10/28 职场文书
周年庆促销方案
2014/03/15 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
布达拉宫导游词
2015/02/02 职场文书
老龙头导游词
2015/02/11 职场文书
挂职个人工作总结
2015/03/05 职场文书
企业党员岗位承诺书
2015/04/27 职场文书
防卫过当辩护词
2015/05/21 职场文书
干部培训简讯
2015/07/20 职场文书
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android