导言
2021年,PCB打样的价格越来越低,电子爱好者们狂喜,不得不提的就是EDA软件,它是设计电路板,设计原理图,仿真等功能为一体的电气工程软件,电子爱好者往往比较个性,pcb自然也会有自己的风格,一般我们往丝印层加的都是元器件编号,或者公司logo,自己的昵称,所以印刷时同一个颜色阻焊,板厂用的打印机也只有一种颜色,如果想要打印图片就惨不忍睹了,细节全丢,如何解决这个问题?
想法和原理
类比推理
如果你很细心观察身边的屏幕的话,你应该发现,彩色图片展现给你是因为有数万颗灯珠显示出来的,每颗灯珠又分为R,G.B三原色,通过改变RGB的电压就能调节颜色,比如R 4V,G 1V,B 0V,那么你得到的就是一个粉红色
把照片打印出来,你会发现惨不忍睹,颗粒感特别严重,虽然现在的打印机都有5000*5000以上的分辨率,但是观感却不如720p的电脑屏幕,这是为什么
如果我们把它扫描后放大
就会出现网格状的点阵
这是因为打印机没法打印出深浅通道的墨水,打印的原色是CMYK,不能像RGB那样调节亮度,显示原理也不同,屏幕是发光源,而打印纸上的是因为环境光的漫反射产生的图像,环境光时时刻刻影响着打印质量。打印机不可能改变你眼睛看到的环境光,也不可能为了彩色照片去设计上万种颜色,但是人类的眼睛有一种特性,如果黑色点很密集,那就是黑色,如果拆散黑点,缩小,你会看到灰色,利用这一个特性,去延伸到更多颜色,实现深浅调节,所以这就不得不引出一个技术
激光照排技术
中国的汉字印刷发展史也有很长一段时间了,汉字在激光照排技术里,过程就是把汉字先分解为点阵然后通过一系列工序定影,类似胶片,这样文字就能够在纸张上呈现了。同样可以运用到图像上,将图像的通道分离为CMYK,根据色深度对每一个通道的点阵进行打散,最后输出到打印机
这样似乎解决了问题,不过,颜色的干扰会变得很明显,比如浅绿色,屏幕上面只要改变G的电压就行,只改变了一个像素;而纸张上,把一个绿色像素点拆分,可能就成了10个像素点,虽然打印分辨率和屏幕不是点对点,但是由于纸张的物理性质,墨水的表面张力会渗透到其它像素上,尤其是那些纸张很小的时候。计算机甚至不能处理点阵导致失真,如果你对着一段文字截图,然后缩小打印出来,就会看到像素重合造成的黑块,这也是文字边缘本身的问题,所以还是要回归问题的根源
二值化技术
打印的墨水只有黑和无,那么我们的打印件也要有和无,也就是色阶只有0和255,比较常用的二值化方法则有:双峰法、P参数法、迭代法和OTSU法等。
最简单方法就是把色阶压缩,四舍五入,低于50%的全部空白,高于50%的全部是黑色,这种简单粗暴的方法必然导致数据的丢失
改变空白和全黑的阈值就能针对不同图片颜色差距上的修改
应用
如同开头所描述的电子爱好者的个性需求,我也是个性需求者之一,设计过许多PCB,也多多少少会放置几张图
这是原图
如果直接用eda软件插入
和刚刚一对比,细节少了不少,很多地方断线,这是因为EDA处理二值化不是那么好
所以我们手动处理,不让eda软件破坏细节
这里实践用的是线稿,位图可以按照上面所说的激光照排散点
教程
首先先把照片变为线稿,可以临摹,可以二阶最小值
ps里转线稿的方式很多,视频教程请见:https://www.bilibili.com/video/BV1pb411n72J
到这一步很成功就算完成一半了,因为后续图片质量如何就取决于这一步
首先将这张图片的色阶稍微拉一下,让图片的颜色集中
选择-色彩范围,点击背景,吸取下背景,然后delete删除背景(一定要是栅格图层或者普通图层,不能是智能图层)
右键画布反选选区,然后选择-修改-扩展选区1个像素
编辑-填充-颜色,选择黑色,确定
这时候你的图片已经完成二值化了,如果像我上图那样有方框和莫名其妙的噪点,多半是线稿化那一步的问题,最小值调整一下就好
导出为png格式的图片,导入eda,简化,平滑全部设置为0,看看成品
重点来了:打板的时候一定要选择白色,这样才能更好呈现,因为你电脑编辑的时候是白底黑边,绿色的你也懂