OpenCV中的图像插值示例
本文地址: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中的图像插值示例相关推荐
- Opencv中ANN神经网络使用示例
前一段儿想用opencv做一下数字识别,用神经网络做识别. 在网上搜了一下关于opencv中ANN的使用方法,@小魏的修行路 的[模式识别]OpenCV中使用神经网络 CvANN_MLP 这篇文章写得 ...
- OpenCV中的立体图像创建深度图
OpenCV中的立体图像创建深度图 1. 效果图 2. 源码 参考 这篇博客将介绍如何从立体图像创建深度图. 1. 效果图 原图 VS 视差图效果如下: 可以看到结果受到高度噪音的污染.通过调整 nu ...
- OpenCV中检测ChArUco的角点(2)
论文阅读模块将分享点云处理,SLAM,三维视觉,高精地图相关的文章.公众号致力于理解三维视觉领域相关内容的干货分享,欢迎各位加入我,我们一起每天一篇文章阅读,开启分享之旅,有兴趣的可联系微信diany ...
- Windows7 32位机上,OpenCV中配置GPU操作步骤
1. 查看本机配置,查看显卡类型是否支持NVIDIA GPU,本机显卡为NVIDIA GeForce 8400 GS: 2. 从http://www.nvidia.cn/Download/inde ...
- OpenCV中BLOB特征提取与几何形状分类
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 一.方法 二值图像几何形状提取与分离,是机器视觉中重点之一,在CT ...
- OpenCV中initUndistortRectifyMap函数存在bug原因探究
原文首发于公众号「3D视觉工坊」:OpenCV中initUndistortRectifyMap函数存在bug原因探究. 最近在运行如下一段代码时,生成的mapx和mapy有点异常. 代码片段如下: # ...
- 关于OpenCV中常见函数用法总结
关于OpenCV中常见函数用法总结 一 一般Mat的赋值操作 二 求Mat中的最大值以及最小值 三 randn()函数给图像添加高斯噪声 四 mean()函数的用法 五 系统计时器 六 矩阵之间的四则 ...
- 在OpenCV中利用卷积进行图像滤波
简 介: 本文首先讨论了卷积核的概念,以及如何用于对图像进行滤波.然后通过他们对图像进行数学运算来实现特定的效果,比如平和和锐化.展示了如何在OpenCV中实现2D滤波. 在等同卷积卷积核之后,我们创 ...
- opencv中的CommandLineParser类用法
我们在看opencv官方示例的时候,经常会看到有关CommandLineParser类的用法,那就从官方教程中来看吧 OpenCV中出现此类的主要目:方便用户在命令行使用过程中减少工作量,在这个地方定 ...
最新文章
- Fundebug后端Java异常监控插件更新至0.2.0,支持Spring及Maven
- Kali Linux
- int i 引出JVM故事
- 新代数控系统参数说明书_台湾新代宏程序编程书
- mysql查看表描述_MySQL表记录操作介绍(重点介绍查询操作)
- java barrier_Java - Latch和Barrier的区别
- 打开.net web项目,出现Unable to get the project ile from the web server错误
- 最简单的Dubbo教程(springBoot纯注解版)
- 爬虫福利二之妹子图网批量下载MM
- 抖音数据统计_【数据】2018抖音大数据报告(完整版)
- 【推荐】jquery开发的大型web应用—H5编辑器工具
- Codeforces gym101981 (2018 icpc 南京站) B.Tournament
- HTML5网页页面无刷新更新页面URL
- 我的世界java版服务器hpy,我的世界Java版21w05a
- 【数学分析笔记02】最大数和最小数
- JavaEE 从入门到放弃
- 飞思卡尔XS128的基本模板程序
- FZU Problem 2227 邮票
- 面对海量数据,企业如何重塑生产力?
- win10删除鲁大师残留文件夹
热门文章
- java反序列化时区,Jackson使用Java 8将Elasticsearch反序列化为LocalDateTime
- ctfshow-WEB-web11( 利用session绕过登录验证)
- Realm的入门使用
- Win2003安装SP1方法
- 字符串的切割操作(strtok,split)
- Android中UI(View)的刷新
- Python开发规范
- Web后端学习笔记 Flask(9)cookie and session
- element js 包含字符_携程春招题目字符串截取和数组升维
- python运行界面黑色_selenium+python 去除启动的黑色cmd窗口方法