本文地址: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 cv2img = 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 cv2mask = 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()

转载于:https://www.cnblogs.com/QingHuan/p/7384433.html

OpenCV中的图像插值示例相关推荐

  1. Opencv中ANN神经网络使用示例

    前一段儿想用opencv做一下数字识别,用神经网络做识别. 在网上搜了一下关于opencv中ANN的使用方法,@小魏的修行路 的[模式识别]OpenCV中使用神经网络 CvANN_MLP 这篇文章写得 ...

  2. OpenCV中的立体图像创建深度图

    OpenCV中的立体图像创建深度图 1. 效果图 2. 源码 参考 这篇博客将介绍如何从立体图像创建深度图. 1. 效果图 原图 VS 视差图效果如下: 可以看到结果受到高度噪音的污染.通过调整 nu ...

  3. OpenCV中检测ChArUco的角点(2)

    论文阅读模块将分享点云处理,SLAM,三维视觉,高精地图相关的文章.公众号致力于理解三维视觉领域相关内容的干货分享,欢迎各位加入我,我们一起每天一篇文章阅读,开启分享之旅,有兴趣的可联系微信diany ...

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

    1.  查看本机配置,查看显卡类型是否支持NVIDIA GPU,本机显卡为NVIDIA GeForce 8400 GS: 2.  从http://www.nvidia.cn/Download/inde ...

  5. OpenCV中BLOB特征提取与几何形状分类

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 一.方法 二值图像几何形状提取与分离,是机器视觉中重点之一,在CT ...

  6. OpenCV中initUndistortRectifyMap函数存在bug原因探究

    原文首发于公众号「3D视觉工坊」:OpenCV中initUndistortRectifyMap函数存在bug原因探究. 最近在运行如下一段代码时,生成的mapx和mapy有点异常. 代码片段如下: # ...

  7. 关于OpenCV中常见函数用法总结

    关于OpenCV中常见函数用法总结 一 一般Mat的赋值操作 二 求Mat中的最大值以及最小值 三 randn()函数给图像添加高斯噪声 四 mean()函数的用法 五 系统计时器 六 矩阵之间的四则 ...

  8. 在OpenCV中利用卷积进行图像滤波

    简 介: 本文首先讨论了卷积核的概念,以及如何用于对图像进行滤波.然后通过他们对图像进行数学运算来实现特定的效果,比如平和和锐化.展示了如何在OpenCV中实现2D滤波. 在等同卷积卷积核之后,我们创 ...

  9. opencv中的CommandLineParser类用法

    我们在看opencv官方示例的时候,经常会看到有关CommandLineParser类的用法,那就从官方教程中来看吧 OpenCV中出现此类的主要目:方便用户在命令行使用过程中减少工作量,在这个地方定 ...

最新文章

  1. Fundebug后端Java异常监控插件更新至0.2.0,支持Spring及Maven
  2. Kali Linux
  3. int i 引出JVM故事
  4. 新代数控系统参数说明书_台湾新代宏程序编程书
  5. mysql查看表描述_MySQL表记录操作介绍(重点介绍查询操作)
  6. java barrier_Java - Latch和Barrier的区别
  7. 打开.net web项目,出现Unable to get the project ile from the web server错误
  8. 最简单的Dubbo教程(springBoot纯注解版)
  9. 爬虫福利二之妹子图网批量下载MM
  10. 抖音数据统计_【数据】2018抖音大数据报告(完整版)
  11. 【推荐】jquery开发的大型web应用—H5编辑器工具
  12. Codeforces gym101981 (2018 icpc 南京站) B.Tournament
  13. HTML5网页页面无刷新更新页面URL
  14. 我的世界java版服务器hpy,我的世界Java版21w05a
  15. 【数学分析笔记02】最大数和最小数
  16. JavaEE 从入门到放弃
  17. 飞思卡尔XS128的基本模板程序
  18. FZU Problem 2227 邮票
  19. 面对海量数据,企业如何重塑生产力?
  20. win10删除鲁大师残留文件夹

热门文章

  1. java反序列化时区,Jackson使用Java 8将Elasticsearch反序列化为LocalDateTime
  2. ctfshow-WEB-web11( 利用session绕过登录验证)
  3. Realm的入门使用
  4. Win2003安装SP1方法
  5. 字符串的切割操作(strtok,split)
  6. Android中UI(View)的刷新
  7. Python开发规范
  8. Web后端学习笔记 Flask(9)cookie and session
  9. element js 包含字符_携程春招题目字符串截取和数组升维
  10. python运行界面黑色_selenium+python 去除启动的黑色cmd窗口方法