本文地址: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. 自制操作系统Antz(5)——深入理解保护模式与进入方法

    Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs. ...

  2. G711 G723 G729线路占多少带宽问题

    G.711   G.711   也称为PCM(脉冲编码调制),是国际电信联盟订定出来的一套语音压缩标准,主要用于电话.它主要用脉冲编码调制对音频采样,采样率为8k每秒.它利用一个 64Kbps 未压缩 ...

  3. docker入门篇 部署springboot项目

    安装docker Ubuntu16.04安装Docker 使用docker 注册docker服务 systemctl enable docker systemctl status docker 然后在 ...

  4. 深入分析Parquet列式存储格式【转】

    Parquet是面向分析型业务的列式存储格式,由Twitter和Cloudera合作开发,2015年5月从Apache的孵化器里毕业成为Apache顶级项目,最新的版本是1.8.0. 列式存储 列式存 ...

  5. DateHelper

    public static class DateHelp { /// <summary> /// 获取当前日期是该月的第几周 /// </summary> /// <pa ...

  6. Angular4.x Event (DOM事件和自定义事件)

    Angular组件和DOM元素通过事件与外部进行通信,两者中的事件绑定语法是相同的-(eventName)="expression": <button (click)=&qu ...

  7. LeetCode--025--k个一组翻转链表(java)

    给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序. 示例 : 给定这个链表: ...

  8. localStorage(本地存储器)、sessionStorage(会话存储)

      设置:localStorage.setItem("token", JSON.parse(res).data.token);   获取:that.token = localSto ...

  9. windows10安装MongoDB服务启动不了 😀✅已解决!

    WIndows的服务中,有一个服务需要以NT  AUTHORITY\NetworkService用户启动,但怎么也启动不起来,使用本地系统帐户启动没有任何问题,但是换成NetworkService就启 ...

  10. test-overflow:ellipsis的应用----转载

    关键字: text-overflow:ellipsis 语法:text-overflow : clip | ellipsis 取值: clip :默认值 .不显示省略标记(...),而是简单的裁切. ...