当前位置: 首页 > news >正文

一种废弃打印纸可用区域的自动识别和再利用方法

  • 引言

当前,打印机和复印机等办公自动化设备在人们工作和生活中的广泛使用,在给人们带来便利的同时,也产生了大量的废弃打印纸,如图,若作为垃圾扔掉,造成环境污染;即使回收再利用,也要产生高昂的回收、存储、整理、运输和加工费用。随着“绿水青山就是金山银山”的理念的深入和我国2035年实现碳中和的目标的确立,废弃打印纸的有效再利用将成为一项重要的研究课题。

经过观察和调查,在很多扔掉的打印纸中,不少都是只打印了一点内容,并没充分使用;而且很多纸张的表面还是非常光滑平整。这些打印纸作为垃圾扔掉,产生浪费的同时还会增加大量的处理成本,甚至会造成环境污染。下图是3张被扔掉的废弃打印纸,第一张只打印了一个标题,第二张只打印了两行字,第三章打印了几个简单图案。它们统一的特点是:纸上只打印了少量的内容,空白区域还有很多。经调研调研,多数打印纸存在一半以上打印内容少和利用率低的问题。若作为垃圾扔掉或人工收回,都会产生资源浪费和人力浪费。

目前还国内外主要研究的是如何对于普通纸张的回收和利用,并没有专门针对打印纸再利用的研究。对于普通纸的回收和利用,主要是采用人工回收填埋和燃烧,部分会被工厂进行二次加工。文献[1]提出了一种碎纸修复术,主要是采用MATLAB程序语言对普通碎纸进行识别和修复,但算法过于复杂,降低了识别速度;并且由于是对碎纸进行识别和修复,效果也不是太好。

1、打印纸可用区域和可再生打印纸机模型

如何能更加高效地使用打印纸呢?本文提出了打印纸的“可用区域”的概念,即一张打印纸可再利用的区域。例如,一张没使用过的打印纸,它的可用区域应该是整个纸张;而一张使用过的打印纸,它的可用区域是满足面积大于某个阈值(例如30行高度或100行像素高度或白色区域占比40%)打印纸。上图中三张打印纸的其可用区域,如图红色矩形框部分所示。

基于打印纸可用区域,提出了一种“可再生打印纸机”模型,其基本工作原理如下:

(1)废弃打印纸的可用区域识别和裁剪。即对于用过的打印纸,找出其可用区域并使用区域进行裁剪。

(2)打印纸可用区域拼接和再生。利用打印纸标准尺寸的原理,可以将两张打印纸进行压制和对接,中间接触处喷入无痕胶水,加热后完成粘贴,从而拼接成一张全新的打印纸。模型原理如图4。 若胶水成本太高,可采取尺寸分类方法,对不同尺寸的白纸进行收集再利。

2、打印纸可用区域的算法

在可再生打印纸机器中,最重要一步是如何实现打印纸可用区域的自动识别。因为在几千、几万张“废弃”打印纸中,仅凭人眼识别纸张的可用区域和手动放置纸张非常困难和缓慢。本文提出了一种自动识别打印纸可用区域的算法:

1.对于给定的一张复印纸,对其进行扫描或拍照,形成计算机图像(png或jpg格式),存放在计算机上,每张值表示为像素点阵。

(1)判断,若图像一行的像素几乎都为白色,则该行为可使用行。

(2)若连续多行都是可使用行,且构成的矩形面积大于可用区域的最小值,则该区域判定为可用区域。

(3)通过连续判断每一像素行,可以依次找出整个复印纸内容中的可用区域,并进行标注。

如果将纸的打印和再生功能结合,就可以研制成“打去印一体机”,也就是将打印机功能和打印纸再生功能结合在一起的机器,不但可以打印,而且可以对打印纸进行可用区域识别和再利用。

3、打印纸可用区域识别实现

通过使用Python语言以及第三方opencv库,可以很容易地实现打印纸可用区域自动识别程序。实验结果如下。若设置可用区域最小高度为打印纸图像上30个像素高度,则程序对张复印纸的可用区域识别效果如图所示。

若可用区域最小高度设置为100个像素,程序运行可以得到可用区域如图。

对识别出的空白区域进行自动裁剪,得到的白色复印纸可以进行分类应用,可以实现有效废纸再利用。

4、打印纸可用区域识别程序

利用Python和opencv实现的代码如下:

#'''==================================== #打印纸可用区域自动识别程序 #=======================================''' import cv2 #导入opencv包 import numpy as np # def point_is_white(point): #判断一个点是否为白色或接近白色 for i in point: if i<250: return 0 return 1 def line_is_white(row,col): #判断一行点是否为白色白色 blackpoints=0 for i in range(0,col): if (point_is_white(image[row,i])==0): blackpoints=blackpoints+1 if blackpoints>10: return 0 else: return 1 def drawrec(img,row1,row2): #按照左上角和右下角画出矩形区域 cv2.rectangle(img, (0,row1), (col-1,row2), color=(0, 0, 255), thickness=1) def find_effecitve_area(img,row,col):#找到有效区域 effective_area=0 line1=0 for line2 in range(line1,row): if line_is_white(line2,col)==1: line2=line2+1 if ((line2-line1)>100): effective_area=1 else: if effective_area==1: drawrec(img,line1,line2) effective_area=0 line2=line2+1 line1=line2 if (effective_area==1): drawrec(img,line1,line2-1) img = cv2.imread("D:\\img\\img3.png")#读取图像 image = np.array(img) row = image.shape[0] col = image.shape[1] find_effecitve_area(image,row,col) cv2.imshow("EffectiveArea",image)#显示图像 cv2.waitKey(0)

5、结论

本文提出了一种打印纸可用区域概念和自动识别算法,在此基础上,提出了“可再生打印纸机器”和“打去印一体机”的模型和工作流程 ,能有效实现废弃打印纸的再利用,减少浪费和节约成本。未来的工作是进一步实现打去印一体机的设计和制造。

参考文献

1.关于碎纸片的自动拼接复原的数学模型问题,https://wenku.baidu.com/view/f19453c007a1b0717fd5360cba1aa81144318fe7.html

http://www.jsqmd.com/news/672177/

相关文章:

  • 别再死记硬背Flex属性了!用这5个真实网页布局案例,带你彻底搞懂CSS Flexbox
  • Python自动化生成目录树:快速了解项目结构的利器
  • 深圳几百人团建|佳天下:安全・定制・透明・省心 - 佳天下国旅
  • 【百例RUST - 013】泛型
  • 3分钟快速搞定GitHub终极加速:免费插件让下载速度飙升10倍
  • 黑苹果完整安装指南:从零开始构建macOS系统
  • 在ruoyi vue v3.8.2 实现后端单表user 的CURD 功能代码和Postman 测试接口
  • 告别CasADi的慢速:用ACADOS在Python里10倍速搞定移动机器人MPC(附避坑配置)
  • Python自动化文件批量格式转换工具
  • 谷歌:强化学习实现参数化知识重组
  • 企业老板血泪教训!裁掉一半业务员,40万高端货凭空消失,内控漏洞差点拖垮公司
  • VS2022全局搜索失效
  • 怪物猎人世界叠加层工具HunterPie:终极游戏信息显示指南
  • 【sql server 多字段排序,处理排序字段为空的问题】
  • OriginPro 2021b 实战:5分钟搞定正负对比柱状图,告别数据重叠烦恼
  • 90、单元格求和
  • Go语言的sync.Cond中的交互底层
  • 给企业家的商机清单:六个问题,完成一次战略级“体检”
  • 2026年主数据平台公司推荐,企业数据治理与经营分析系统厂商 - 品牌2026
  • 2026年云南云南卫浴批发公司最新推荐排行榜,国内云南卫浴批发企业推荐榜单/云南卫浴批发厂商排行榜/云南卫浴批发公司 - 品牌策略师
  • HJ182 画展布置
  • HCIA园区网(VLAN、OSPF、ACL)
  • 抖音去水印视频下载神器:3分钟搞定无水印批量下载的终极方案
  • 2026年RapidSSL证书价格是多少?RapidSSL入门SSL证书申请推荐 - 麦麦唛
  • 基于STM32的无线抢答器设计
  • 从‘No tests found’错误出发,聊聊Maven项目里测试代码到底该放哪儿(附最佳实践)
  • MASA模组全家桶汉化包:3分钟解决Minecraft中文玩家的语言难题
  • 2026寻找能搞定VI、包装、展会的全能型设计伙伴 - 深度智识库
  • 西门子S7-200smart PLC通过RS485通讯读取绝对值伺服编码器当前位置并记录至机械...
  • 跨平台流程图绘制终极指南:drawio-desktop免费开源解决方案