iOS 高级去水印,涂鸦去水印
目前在研究一下图像的处理,看了一下相关的软件,比如:《去水印大师》,究竟去水印是怎么处理的呢?看图分析。

一共是三个功能:快速去水印、高级去水印、涂鸦去水印
快速去水印:暂时没找到好的处理方法,可以使用高斯模糊的方式去处理,效果还不错。
高级去水印:这个要使用opencv这个C++的库
涂鸦去水印:就单纯的涂鸦处理
高级去水印
可参考github:
https://github.com/ahgdwang/WaterMarkDelete
https://github.com/CodingClearLoveLove/Watermarks2
涂鸦去水印
可参考github:
https://github.com/siyunyou/CRJDrawImageView
总结
1、涂鸦去水印和高级去水印,可以混合使用。由于涂鸦去水印,每画一笔,都是在CAShapeLayer图层上操作,而高级去水印是基于图片处理的,因而,需要将涂鸦去水印每一笔画完去保存成一张图片。
2、处理图片的UIImageView,需要根据图片的大小比例去创建,这样,会出现图片比例是无限循环小数的时候,每次保存图片都会让图片失真并且缩小。暂时没有好的处理方式。
OpenCV的库,研究起来,还是很吃力的,可以看看以下的文章
1、https://www.jianshu.com/p/eed90371a3a6
2、http://blog.devtang.com/2013/10/19/the-tech-detail-of-ape-client-2/
3、https://www.jianshu.com/p/476ba34fca96
4、https://www.jianshu.com/p/96be2417cc98
iOS 高级去水印,涂鸦去水印的更多相关文章
- 北京联想招聘-IOS高级 加入qq 群:220486180 或者直接在此 留言咨询
ios 高级开发 Job ID #: 47980 Position Title: 高级iOS development engineer Location: CHN-Beijing Functional ...
- (转发)IOS高级开发~Runtime(四)
用C代替OC: #import <objc/runtime.h> #import <objc/message.h> #import <stdio.h> extern ...
- (转发)IOS高级开发~Runtime(三)
11.系统类的方法实现部分替换 - (void) methodExchange { Method m1 = class_getInstanceMethod([NSStringclass],@selec ...
- (转发)IOS高级开发~Runtime(二)
一些公用类: @interface ClassCustomClass :NSObject{ NSString *varTest1; NSString *varTest2; NSString *varT ...
- (转发)IOS高级开发~Runtime(一)
IOS高级开发-Runtime(一) IOS高级开发-Runtime(二) IOS高级开发-Runtime(三) IOS高级开发-Runtime(四) 一些公用类: @interface Custom ...
- IOS高级编程之一:多点触摸与手势验证
前段时间学习了IOS基础的一些控件的使用作为基础,现在开始学习一些高级编程的东西,手势处理器.文件I/O.定位.网络通信.多线程这些,分享一些学习的重点,还是很实用的. 今天就先介绍个简单点得,手势处 ...
- iOS 高级框架的介绍
Core Data.Core Graphics.Core Animation 和 OpenGL ES 框架,是对于应用程序开发很重要的高级技术,因此需要花时间来学习和掌握. Core Data 框架管 ...
- 【转】iOS高级向的十道面试问题
原文:http://onevcat.com/2013/04/ios-interview/ 不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技 ...
- 新浪微博资深大牛全方位剖析 iOS 高级面试
第1章 课程简介本章对这门课程所讲述内容进行概要介绍,其中包括课程目标.适合人群,课程特色.课程收获.课程安排等.整个课程学习完结后,有机会获得电话模拟面试及内推. 1-1 课前必读(不看会错过一个亿 ...
随机推荐
- 4337: BJOI2015 树的同构
题解: 树的同构的判定 有根树从根开始进行树hash 先把儿子的f进行排序 $f[i]=\sum_{j=1}^{k} { f[j]*prime[j]} +num[i]$(我没有仔细想这样是不是树是唯一 ...
- .net OADate 转javascript的Datetime js 5位 日期 转换
以下是将.net的OADate转成javascript的DateTime函数. 其中参数oadate是.net那里传过来的UTC时间的double.记得 一定是UTC时间. .net Double o ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-13基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级
1.权限管理 权限管理的基本定义:百度百科. 基于<Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员.后台管理员同时登录>我们做过了登录认证, ...
- Maven中pom.xml文件的配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- aop切入mapper接口
***************************************分割线****************************************************** 参考: ...
- c#堆与栈
一.在讲堆栈之前,我们先看看值类型和引用类型: 1,我们看看值类型与引用类型的存储方式: 引用类型:引用类型存储在堆中.类型实例化的时候,会在堆中开辟一部分空间存储类的实例.类对象的引用还是存储在栈中 ...
- 面试题:常用的http状态码
3XX 重定向 301 Moved Permanently 永久重定向,表示请求的资源已经永久的搬到了其他位置 302 Found 临时重定向,表示请求的资源临时搬到了其他位置 303 See ...
- Django路由机制
Django的URL路由配置: Settings.py文件中的ROOT_URLCONF变量指定全局路由文件名称 ROOT_URLCONF = '工程名称.urls' #默认对应工程目录下urls. ...
- dbconfig.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/数据库名 jdbc.username=root jdbc. ...
- macos解决Hadoop之Unable to load native-hadoop library
很显然,native-hadoop library不支持macos,如果是Linux就不会有这个问题.在百度上搜了,要下载在macos上编译的native hadoop library,我在网上下载了 ...