关于OpenCV简介

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。

在计算机视觉项目的开发中,OpenCV作为较大众的开源库,拥有了丰富的常用图像处理函数库,采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上,能够快速的实现一些图像处理和识别的任务。此外,OpenCV还提供了Java、python、cuda等的使用接口、机器学习的基础算法调用,从而使得图像处理和图像分析变得更加易于上手,让开发人员更多的精力花在算法的设计上。

安装CV2

pip install opencv-python

图片修复程序-可用于水印去除

在现实的生活中,我们可能会遇到一些美好的或是珍贵的图片被噪声干扰,比如旧照片的折痕,比如镜头上的灰尘或污渍,更或者是某些我们想为我所用但有讨厌水印,那么有没有一种办法可以消除这些噪声呢?

答案是肯定的,依然是被我们用了无数次的OpenCV这款优秀的框架。

OpenCV

目前,OpenCV逐步成为一个通用的基础研究和产品开发平台。OpenCV这一名称包含了Open和 Computer Vision两者的意思。实际上,Open指Open Source(开源,即开放源代码),Computer Vision则指计算机视觉。OpenCV的发展对软件的开发具有重要影响。

图片修复原理

那OpenCV究竟是怎么实现的,简单的来说就是开发者标定噪声的特征,在使用噪声周围的颜色特征推理出应该修复的图片的颜色,从而实现图片修复的。

程序实现解析

  • 标定噪声的特征,使用cv2.inRange二值化标识噪声对图片进行二值化处理,具体代码:cv2.inRange(img, np.array([240, 240, 240]), np.array([255, 255, 255])),把[240, 240, 240]~[255, 255, 255]以外的颜色处理为0;
  • 使用OpenCV的dilate方法,扩展特征的区域,优化图片处理效果;
  • 使用inpaint方法,把噪声的mask作为参数,推理并修复图片;
#coding=utf-8import cv2
import numpy as nppath = "20186491751170.jpg"
img = cv2.imread(path)
height , width , depth = img.shape[0 : 3]
print(height , width , depth)thresh = cv2.inRange(img , np.array([240,240,240]) , np.array([255,255,255]))#创建形状和尺寸的结构元素
kernel = np.ones(( 3 , 3 ) , np.uint8)#扩张待修复区域
hi_mask = cv2.dilate(thresh, kernel, iterations=1)
specular = cv2.inpaint(img, hi_mask, 5, flags=cv2.INPAINT_TELEA)#修复前图片窗口
cv2.namedWindow("Image", 0)
cv2.resizeWindow("Image", int(width / 2), int(height / 2))
cv2.imshow("Image", img)#修复后图片窗口
cv2.namedWindow("newImage", 0)
cv2.resizeWindow("newImage", int(width / 2), int(height / 2))
cv2.imshow("newImage", specular)
cv2.waitKey(0)
cv2.destroyAllWindows()

AI实战第八课 CV2图片去水印相关推荐

  1. Docker容器化实战第八课 DevOps和CI/CD

    22 多阶段构建:Docker 下如何实现镜像多阶级构建? 通过前面课程的学习,我们知道 Docker 镜像是分层的,并且每一层镜像都会额外占用存储空间,一个 Docker 镜像层数越多,这个镜像占用 ...

  2. SpringCloud Alibaba实战第八课 缓存设计、网关认证、重构策略

    19 性能为王:微服务架构中的多级缓存设计 前一讲我们学习了利用 Seata 构建微服务环境的分布式事务架构,通过完整的案例也了解了 Seata 的执行过程. 本讲咱们探讨缓存这个话题,看在微服务环境 ...

  3. web第八课:图片标签的路径和属性

    1.<img>标签路径:和html代码文件在同级目录下 代码: 图片标签:img,发现它有两个属性,我们先不管第二个,第一个src是我们加载的图片的路径,如果你将图片存放在和你创建的htm ...

  4. 大数据实战第八课-Hive高级

    一.上次课回顾 二.Hive元数据之数据库相关表介绍 三.集群规模评估 四.写两个UDF函数 五. 一.上次课回顾 https://blog.csdn.net/zhikanjiani/article/ ...

  5. AI实战:目标检测模型应用之生活垃圾图片分类

    前言 "华为云杯"2020深圳开放数据应用创新大赛·生活垃圾图片分类 [大赛介绍] 由深圳市政务服务数据管理局.南山区人民政府主办,南山区政务服务数据管理局.华为技术有限公司承办的 ...

  6. 斯坦福大学机器学习第八课“神经网络的表示(Neural Networks: Representation)”

    斯坦福大学机器学习第八课"神经网络的表示(Neural Networks: Representation)" 斯坦福大学机器学习第八课"神经网络的表示(Neural Ne ...

  7. 【AI实战】动手实现人脸识别程序

    人脸识别在现实生活中有非常广泛的应用,例如iPhone X的识别人脸解锁屏幕.人脸识别考勤机.人脸识别开门禁.刷脸坐高铁,还有识别人脸虚拟化妆.美颜,甚至支付宝还推出了刷脸支付.建设银行还实现了刷脸取 ...

  8. PS图片去水印的方法

    PS图片去水印的方法 前言 一.用PS打开图片 二.框选水印内容 三.选择菜单"编辑|填充" 四.在弹出的填充对话框中,点击"确定" 五.水印就成功去除了 总结 ...

  9. 有哪些实用的图片去水印的方法?这三个方法让你实现去图片水印

    有没有小伙伴喜欢在网上搜索一些好看有趣的图片当壁纸呢?我就很喜欢在网上搜索好看有趣的图片,最近发现保存的照片上大多带有平台作者水印,虽然知道这是为了保护作者的作品,但我们并不进行商用不影响作者版权,这 ...

最新文章

  1. linux脚本case语句,shell中的case语句,数组及函数
  2. 【错误记录】Flutter 报错 ( Dart SDK is not configured )
  3. 2015年去哪儿网Qunar面试题
  4. Nettiers快速使用入门(一) 数据库
  5. http请求curl
  6. Python 总结题目
  7. 关系数据模型和关系数据库系统
  8. 整套的操作体系:三点看股法
  9. 漫谈边缘计算(一):边缘计算是大势所趋
  10. C++socket编程(七):7.4 正则表达式分析用户请求
  11. opencv 霍夫直线检测
  12. 2018 10 23
  13. 如何把一个软件嵌入另一个软件_Notion可不只是一个笔记软件
  14. visreg:带你玩遍模型可视化
  15. leetcode数组汇总_LeetCode刷题实战74:搜索二维矩阵
  16. JS -获取屏幕/浏览器高度
  17. 【统计学】相关性和因果关系
  18. java field 赋值_Java Field.set()向对象的这个Field属性设置新值value
  19. php笔试攻略,php笔试(一)
  20. python 卡片概念学习

热门文章

  1. Vue2 vue-router安装和配置的步骤-基本路由
  2. Fresco加载图片使用笔记--基本使用,播放动态wbep,控制播放次数,预加载,闪帧解决
  3. ABAP 获取当前服务器域名和端口
  4. 【Vue】MVVM模型,vue中的data、methods属性
  5. 支付宝数字证书常见问题解决思路(一)
  6. vb计算机图形学绘制钻石图案,Visual Basic 图形及图像处理 - 关于VB的经验之谈 - VB爱好者乐园(VBGood) - 关于VB的经验,电子教程,代码,控件,论坛,博客,微博等....
  7. java毕业生设计中药材电子商务平台计算机源码+系统+mysql+调试部署+lw
  8. python输入姓名输出职务_python题中输入姓名的笔画数,输出所属性格,及该种性格人的典型代表?...
  9. redis外部客户端访问时 Redis Client On Error: Error: connect ETIMEDOUT Config right 端口问题导致
  10. 星志远:拼多多退款商家有什么损失?