本文地址:http://www.cnblogs.com/QingHuan/p/7384433.html,转载请注明出处

===============================================================

图像插值的用处是把图像中的“划痕”等通过插值的方式去除掉,

英文对应的是:image inpainting,可以通过英文检索相关论文,比如
《High-Resolution Image Inpainting using Multi-Scale Neural Patch Synthesis》

1. 第一个例子:

这里结合 http://docs.opencv.org/trunk/df/d3d/tutorial_py_inpainting.html 然后略作修改,给出了第一个例子

首先给出代码:

import numpy as np
import cv2 img = cv2.imread('messi.png')
mask = cv2.imread('mask.png',0) img = cv2.resize(img, (846, 634))
mask = cv2.resize(mask, (846, 634)) dst = cv2.inpaint(img,mask,3,cv2.INPAINT_TELEA) cv2.imwrite("messi_result.png", dst)
cv2.imshow('dst',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

这里做了Resize,把两幅图片的尺寸调成一样的了,因为图片是手动的截图

下面是损坏后的图片,MASK和修复后的图片:

关于resize的补充阅读:http://blog.csdn.net/ikerpeng/article/details/17239809

2. 第二个例子:

这里是两张图片,一张是小男孩的图片,一张是通过姿态识别标注后的小男孩图片:

这两张分别是 boy_t.png 和 boy.jpg

那么如何通过算法来找出他们的差异呢?找到的差异可否当作第一个例子中的 MASK 来使用呢?

答案是可以的:

效果如图:

四张图从左到右分别是姿态识别标注后的图、原图、根据MASK插值后的图、MASK(也就是前两张的差异)

下面是代码:

import numpy as np
import cv2 mask = cv2.imread('boy.jpg')
img = cv2.imread('boy_t.png') img = cv2.resize(img, (280, 500))
mask = cv2.resize(mask, (280, 500)) cv2.imshow('origin', mask)
mask = cv2.subtract(img, mask)
mask = cv2.cvtColor(mask, cv2.COLOR_RGB2GRAY) cv2.imshow('img', img)
cv2.imshow('mask', mask) dst = cv2.inpaint(img, mask, 3, cv2.INPAINT_TELEA) # cv2.imwrite("messi_result.png", dst)
cv2.imshow('dst',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

OpenCV中的图像插值示例的更多相关文章

  1. 【OpenCV】OpenCV中GPU模块使用

    CUDA基本使用方法 在介绍OpenCV中GPU模块使用之前,先回顾下CUDA的一般使用方法,其基本步骤如下: 1.主机代码执行:2.传输数据到GPU:3.确定grid,block大小: 4.调用内核 ...

  2. 图像金字塔及其在 OpenCV 中的应用范例(下)

    前言 本文将主要讲解如何使用 OpenCV 实现图像分割,这也是图像金字塔在 OpenCV 中的一个重要应用. 关于图像分割 在计算机视觉领域,图像分割(Segmentation)指的是将数字图像细分 ...

  3. 立体视觉-opencv中立体匹配相关代码

    三种匹配算法比较 BM算法: 该算法代码: view plaincopy to clipboardprint? CvStereoBMState *BMState = cvCreateStereoBMS ...

  4. Windows7 32位机上,OpenCV中配置GPU操作步骤

    1.  查看本机配置,查看显卡类型是否支持NVIDIA GPU: 2.  从http://www.nvidia.cn/Download/index.aspx?lang=cn下载最新驱动并安装: 3.  ...

  5. cv2.cornerHarris()详解 python+OpenCV 中的 Harris 角点检测

    参考文献----------OpenCV-Python-Toturial-中文版.pdf 参考博客----------http://www.bubuko.com/infodetail-2498014. ...

  6. Windows7 64位机上,OpenCV中配置CUDA,实现GPU操作步骤

    原文地址:http://blog.csdn.net/haorenka2010/article/details/24385955 按语:首先感谢http://blog.csdn.net/fengbing ...

  7. OpenCV中cv2的用法

    一.读入图像 使用函数cv2.imread(filepath,flags)读入一副图片 filepath:要读入图片的完整路径 flags:读入图片的标志  cv2.IMREAD_COLOR:默认参数 ...

  8. [OpenCV-Python] OpenCV 中的 Gui特性 部分 II

    部分 IIOpenCV 中的 Gui 特性 OpenCV-Python 中文教程(搬运)目录 4 图片 目标 • 在这里你将学会怎样读入一幅图像,怎样显示一幅图像,以及如何保存一幅图像 • 你将要学习 ...

  9. [OpenCV-Python] OpenCV 中的图像处理 部分 IV (二)

    部分 IVOpenCV 中的图像处理 OpenCV-Python 中文教程(搬运)目录 16 图像平滑 目标 • 学习使用不同的低通滤波器对图像进行模糊 • 使用自定义的滤波器对图像进行卷积(2D 卷 ...

随机推荐

  1. Intellij IDEA的下载安装与破解

    一,下载与安装 1.官网下载:https://www.jetbrains.com/idea/ 2.选择Windows对应版本安装 二,破解 1.下载破解补丁:http://idea.lanyus.co ...

  2. linux下如何源码编译安装vim

    1. 获取源码 git clone https://github.com/vim/vim.git ~/vim cd ~/vim 2. 配置 ./configure --prefix=/home/jel ...

  3. IDEA的校园邮箱激活方式

    链接: https://blog.csdn.net/m0_37286282/article/details/78279060

  4. 论文笔记: Mutual Learning to Adapt for Joint Human Parsing and Pose Estimation

    Mutual Learning to Adapt for Joint Human Parsing and Pose Estimation 2018-11-03 09:58:58 Paper: http ...

  5. Java核心技术梳理-泛型

    一.引言 在学习集合的时候我们会发现一个问题,将一个对象丢到集合中后,集合并不记住对象的类型,统统都当做Object处理,这样我们取出来再使用时就得强制转换类型,导致代码臃肿,而且加入集合时都是以Ob ...

  6. 【快捷键】IntelliJ IDEA For Mac 常用快捷键

    一.符号对应关系 ⌃ control ⌥ option ⌘ command ⇧ shift 二.常用快捷键 1.control+shift+J 两行整理成一行 2.command+shift+F12 ...

  7. Linux 独立启动方式安装 Archiva

    为了方便起见,我们假设你的 archiva 安装到目录 /opt 下面. 下载安装程序 进入 Archiva 的项目的下载页面中,请单击链接:https://archiva.apache.org/do ...

  8. .net代码修改webconfig

    /// <summary> /// 写入web.config /// </summary> /// <param name="item">app ...

  9. vue配置编译本地打开dist/index.html文件

    项目完成后npm run build会生成dist文件,此时直接将dist文件发布到线上即可,若想本地打开dist/index.html可看,一般页面为空,或者报错找不到css和js文件,则需要更改一 ...

  10. web前端性能优化总结一

    转自:http://www.2cto.com/kf/201604/498725.html 网站的划分一般为二:前端和后台.我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为文章发 ...