手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

  • A+
所属分类:编程语言

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

先来看一个例子:

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

虽然这位学生的笔记很整洁,但笔记的扫描件看起来有点乱。原因是复印机将这页笔记的反面内容也进行了扫描,这会分散读者的注意力,而对于JPG或PNG编码器来说,这种情况比纯色背景的图片更难压缩。

下图是我写的noteshrink.py程序的输出结果:

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

如果结果真是这样,那么分离背景色将不会有任何问题。遗憾的是,情况并非总是如此,由于复印机玻璃板上的灰尘和污迹、页面本身的颜色变化、传感器噪声等不同的因素,像素的RGB值会发生随机的变化,页面的“实际颜色”其实可能涵盖数千个不同的RGB值。

扫描图像的原件大小为2081×2531,共5267011个像素点。虽然我们可以逐一处理每个像素点,但是处理输入图像的代表性像素点会更快。

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

选择一组有代表性的颜色

当我们将前景色分离后,会得到与页面上笔记的颜色相对应的一组颜色。将得到的像素点重新放进RGB空间并计算每个像素对应的坐标,可以看到新的散点图呈现簇状,每一个颜色会形成自己的色块:

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

具体的做法是,通过k-means算法在一个颜色簇中找到一个点,这个点到其他每个点的平均距离之和最小。对上述数据集使用这个方法,得到7个不同的颜色簇:

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

由three.js提供支持的交互式三维图

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

不同颜色簇的可视化:

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

由three.js提供支持的交互式三维图

第二个PDF需要将饱和度阈值降低到0.045,因为蓝灰色的线条颜色太深不便于阅读:

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

对应的颜色簇:

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

由three.js提供支持的交互式三维图

最后这个PDF来自于工程师的方格纸,在这个过程中我将亮度阈值设置为0.05,因为背景和线条之间的对比度非常低:

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

对应的颜色簇:

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

手写笔记扫描出来图片又大又不清晰?几行代码写个Python小程序!

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: