增强 扫描王 源码_camscanner(扫描全能王)功能解析与复现 - 页面增强
早就在用camscanner(扫描全能王)这个软件,感觉很不错。
主要功能:
1.页面截取校正
2.增强处理(灰度与颜色)
刚好最近工作与此相关,静心做点仿真,看看其中的操作原理,也做个demo玩玩。
关于页面的校正,网上有人做了一些介绍和仿真,大体就是边缘,直线检测,交点,homography求取,最后warp变换。这个后面有时间在看看。
我比较感兴趣它的增强处理,特别是(magic color)的处理,感觉很不错,查了些资料没有看到合适的,其中opencv 中的adaptiveThreshold()函数有其灰度化处理的影子,但彩色增强上不是,后来觉得把问题当去光照处理,得到了较为近似的结果,感觉方向是对,就是细节处理大家不一样。
后续整理好放demo,今天先记录一下。
【2018-12-18】
有人做了这个photoshop下的仿真思路
https://blog.csdn.net/pleasecallmewhy/article/details/8776998
算法以此类同,细节不一。
问题规范为图像A,B,为同一场景在不一样的光照拍摄图片,那么:
光照分布 L = A / B
如果已知 A, L ,则 B = A / L (B 为A去光照的结果)
这里L约等于 gaussFilter(A, 大核)
算是展现了图像除法的经典案例
效果比对
如果运行出错,请自行安装VC_RedistInstaller.exe
仿真程序
不要再问我要 code了,简单仿真 opencv code
cv::Mat pageEnhance(cv::Mat &xin)
{
cv::Mat fin;int r = (int)(sqrt((float)xin.cols * xin.rows) / 32.0f) + 1;
cv::GaussianBlur(xin, fin, cv::Size(r+ r + 1, r + r + 1), 0.0f);int clen = xin.channels() *xin.cols;
cv::Mat xout=xin.clone();for (int j = 0; j < xout.rows; j++)
{
uchar*po = xout.row(j).ptr();
uchar*pf = fin.row(j).ptr();for (int i = 0; i < clen; i++)
{
po[i]= (pf[i] == 0) ? 0 : (uchar)std::min(255.0f, 255.0f * po[i] /pf[i]);
}
}returnxout;
}
增强 扫描王 源码_camscanner(扫描全能王)功能解析与复现 - 页面增强相关推荐
- 增强 扫描王 源码_BlueScan:一款功能强大的蓝牙扫描器
BlueScan BlueScan是一款功能强大的蓝牙扫描器,广大研究人员可以使用BlueScan来扫描BR/LE设备.LMP.SDP.GATT以及相关的蓝牙漏洞. 考虑到目前社区中针对蓝牙安全方面的 ...
- cesium 雷达扫描(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- asp.net mvc linux,ASP.NET MVC4开发指南PDF扫描版+源码
ASP.NET MVC问世已久,几年前或许有人会担心ASP.NET MVC框架是否能用在实务的项目上,也担心用在新项目上是否真的能改善开发效率与质量,但笔者这几年下来,已经累积数十个网站项目改用ASP ...
- 基于ZXing Android实现生成二维码图片和相机扫描二维码图片即时解码的功能
NextQRCode ZXing开源库的精简版 **基于ZXing Android实现生成二维码图片和相机扫描二维码图片即时解码的功能 原文博客 附源码下载地址** 与原ZXingMini项目对比 N ...
- 微信扫描二维码和浏览器扫描二维码 ios和Android 分别进入不用的提示页面
实现微信扫描二维码和浏览器扫描二维码 ios和Android 分别进入不用的提示页面 而进入商城下载该项目 详情地址:gitee.com/DuJiaHui123- 1.创建完之后 替换文件里面的ios ...
- 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式
GitHub项目的链接地址 目录 功能介绍 常见问题 效果图与示例 apk Gradle 依赖 布局文件 自定义属性说明 接口说明 关于我 功能介绍 ZXing 生成可自定义颜色.带 logo 的二维 ...
- QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式...
QRCode 扫描二维码.扫描条形码.相册获取图片后识别.生成带 Logo 二维码.支持微博微信 QQ 二维码扫描样式 参考链接:https://github.com/bingoogolapple/B ...
- [附源码]JAVA毕业设计小王防疫副食品配送商城(系统+LW)
[附源码]JAVA毕业设计小王防疫副食品配送商城(系统+LW) 项目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ecli ...
- 教育直播系统源码搭建的关键点、代码解析
目前,直播已经应用到了各种传统行业,其中直播带货和教育直播在近两年"风生水起",特别是在线教育,很多传统的教培机构已经开始转型线上.那么,教育直播系统源码开发时有哪些关键点呢?下文 ...
- Uboot中start.S源码的指令级的详尽解析 在线版
http://bbs.chinaunix.net/thread-2312785-1-1.html 以后所有内容更新,都放在这里: Uboot中start.S源码的指令级的详尽解析 在线版 Uboot ...
最新文章
- HTTP自定义Header-(SOCKET-TCP)
- 第三章 PX4-Pixhawk-SPI底层驱动解析
- PHP中如何实现 “在页面中一边执行一边输出” 的效果
- 数据库乐观锁如何实现幂等性?
- 【摄影测量原理】第四章:解析空中三角测量
- 华师 计算机系统 作业,华师网络学院作业答案-计算机组成原理问答题
- onclick进不去ajax,在ajax调用之后处理onclick函数
- java文件名命名的规则,Java文件名及其他命名规则
- Docker 教程、架构、Linux下的安装
- python获取当前网页元素_python – 如何获取webdriver中元素的当前内容
- entry在java的用处_JAVA问题:Map.Entry的一般用处是什么?
- 解决websocket链接失败防火墙规则问题
- Linux参考资料名称,Linux系统管理员必备参考资料下载汇总
- 剖析搜索引擎背后的经典数据结构和算法
- java.lang.abstractmethoderror
- HTC Vive开发笔记之手柄震动 转
- 定时器-----每天定时删除临时文件
- AntV-G6实现微服务拓扑图
- 压测报502 badgateway问题解决
- go语言文件写入追加
热门文章
- 一次学会b站视频下载_合并_剪辑,亲测有效~
- 在switch时使用枚举类型
- 我在腾讯看点的导师 Steven
- 网络编程基础(Socket ServerSocket)
- Qt/Windows 获取 MITSUBISHI P95DW 打印机状态信息
- 【python】43_用pygame制作乌龟吃鱼游戏
- 漫话中文分词和语义识别(下):句法结构和语义结构
- BATT入局,小程序成超级APP连接一切的枢纽
- 斐讯k2怎么设置虚拟服务器,设置斐讯K2路由器上网连接教程 | 192路由网
- 基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取