早就在用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(扫描全能王)功能解析与复现 - 页面增强相关推荐

  1. 增强 扫描王 源码_BlueScan:一款功能强大的蓝牙扫描器

    BlueScan BlueScan是一款功能强大的蓝牙扫描器,广大研究人员可以使用BlueScan来扫描BR/LE设备.LMP.SDP.GATT以及相关的蓝牙漏洞. 考虑到目前社区中针对蓝牙安全方面的 ...

  2. cesium 雷达扫描(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  3. asp.net mvc linux,ASP.NET MVC4开发指南PDF扫描版+源码

    ASP.NET MVC问世已久,几年前或许有人会担心ASP.NET MVC框架是否能用在实务的项目上,也担心用在新项目上是否真的能改善开发效率与质量,但笔者这几年下来,已经累积数十个网站项目改用ASP ...

  4. 基于ZXing Android实现生成二维码图片和相机扫描二维码图片即时解码的功能

    NextQRCode ZXing开源库的精简版 **基于ZXing Android实现生成二维码图片和相机扫描二维码图片即时解码的功能 原文博客 附源码下载地址** 与原ZXingMini项目对比 N ...

  5. 微信扫描二维码和浏览器扫描二维码 ios和Android 分别进入不用的提示页面

    实现微信扫描二维码和浏览器扫描二维码 ios和Android 分别进入不用的提示页面 而进入商城下载该项目 详情地址:gitee.com/DuJiaHui123- 1.创建完之后 替换文件里面的ios ...

  6. 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式

    GitHub项目的链接地址 目录 功能介绍 常见问题 效果图与示例 apk Gradle 依赖 布局文件 自定义属性说明 接口说明 关于我 功能介绍 ZXing 生成可自定义颜色.带 logo 的二维 ...

  7. QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式...

    QRCode 扫描二维码.扫描条形码.相册获取图片后识别.生成带 Logo 二维码.支持微博微信 QQ 二维码扫描样式 参考链接:https://github.com/bingoogolapple/B ...

  8. [附源码]JAVA毕业设计小王防疫副食品配送商城(系统+LW)

    [附源码]JAVA毕业设计小王防疫副食品配送商城(系统+LW) 项目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ecli ...

  9. 教育直播系统源码搭建的关键点、代码解析

    目前,直播已经应用到了各种传统行业,其中直播带货和教育直播在近两年"风生水起",特别是在线教育,很多传统的教培机构已经开始转型线上.那么,教育直播系统源码开发时有哪些关键点呢?下文 ...

  10. Uboot中start.S源码的指令级的详尽解析 在线版

    http://bbs.chinaunix.net/thread-2312785-1-1.html 以后所有内容更新,都放在这里: Uboot中start.S源码的指令级的详尽解析 在线版 Uboot ...

最新文章

  1. HTTP自定义Header-(SOCKET-TCP)
  2. 第三章 PX4-Pixhawk-SPI底层驱动解析
  3. PHP中如何实现 “在页面中一边执行一边输出” 的效果
  4. 数据库乐观锁如何实现幂等性?
  5. 【摄影测量原理】第四章:解析空中三角测量
  6. 华师 计算机系统 作业,华师网络学院作业答案-计算机组成原理问答题
  7. onclick进不去ajax,在ajax调用之后处理onclick函数
  8. java文件名命名的规则,Java文件名及其他命名规则
  9. Docker 教程、架构、Linux下的安装
  10. python获取当前网页元素_python – 如何获取webdriver中元素的当前内容
  11. entry在java的用处_JAVA问题:Map.Entry的一般用处是什么?
  12. 解决websocket链接失败防火墙规则问题
  13. Linux参考资料名称,Linux系统管理员必备参考资料下载汇总
  14. 剖析搜索引擎背后的经典数据结构和算法
  15. java.lang.abstractmethoderror
  16. HTC Vive开发笔记之手柄震动 转
  17. 定时器-----每天定时删除临时文件
  18. AntV-G6实现微服务拓扑图
  19. 压测报502 badgateway问题解决
  20. go语言文件写入追加

热门文章

  1. 一次学会b站视频下载_合并_剪辑,亲测有效~
  2. 在switch时使用枚举类型
  3. 我在腾讯看点的导师 Steven
  4. 网络编程基础(Socket ServerSocket)
  5. Qt/Windows 获取 MITSUBISHI P95DW 打印机状态信息
  6. 【python】43_用pygame制作乌龟吃鱼游戏
  7. 漫话中文分词和语义识别(下):句法结构和语义结构
  8. BATT入局,小程序成超级APP连接一切的枢纽
  9. 斐讯k2怎么设置虚拟服务器,设置斐讯K2路由器上网连接教程 | 192路由网
  10. 基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取