这次使用的元件是1.54inch_e-paper_b (黑白红显示)
先大概简单介绍一下该函式库,不用特别下载安装依赖库设定环境,函式库直接带入套用就可以使用了
程序运作程序大致为:
epd = epd1in54b.EPD()
epd.init()
frame_black = [0xFF] * int((epd.width * epd.height / 8))
frame_red = [0xFF] * int((epd.width * epd.height / 8))
(1).画线 epd.draw_line
(2).空心方 epd.draw_rectangle
(3).空心圆 epd.draw_circle
(4).实心方 epd.draw_filled_rectangle
(5).实心圆 epd.draw_filled_circle
(6).文字 epd.display_string_at
(7).载入图片
frame_black = epd.get_frame_buffer(Image.open('图片一'))
frame_red = epd.get_frame_buffer(Image.open('图片二'))
(8).显示图层 epd.display_frame(frame_black, frame_red)
在显示的时候黑色电子墨水会先显示并且可以呈现灰阶效果, 随後红色电子墨水以晕染的型态浮现在黑色电子墨水上层.
接下来就利用以上电子墨水的特性,以OpenCV来设计影像转换的演算法,参考如下图:
frame_black 作为勾勒图像轮廓的线条使用,frame_red 作为填满封闭区域使用
frame_red: 图像经过灰阶处理後以THRESH_BINARY二值化,匡列出涂满的部位,注意区域色彩如果明度太高,THRESH_BINARY的参数没跟着校正的话,会匡列不出涂满区域,请参考色彩原理
frame_black: 图像经过canny找出边缘轮廓後,用dilate膨胀加粗轮廓(膨胀这段可根据图像需求追加),再用THRESH_BINARY_INY反转阴阳.
原图
frame_redframe_black
display_frame
https://github.com/KaliChen/e-paper_imagePopArt
<<: 资料结构与演算法[3] - List和SortedList与BinarySearch
编辑单一资料 如果用 Route::resource 建立 API 的话,编辑单一资料的路由会是 请...
Terraform State 之你的 Local State 不是我的 State State 是...
时间函数 世界各国表示时间的方式不一样,存储不方便,计算不方便,不同的时间表示方式影响,不利於沟通和...
18 - Config 这篇将介绍与上篇 Configatron 相同功能类似的 Gem - Con...
本篇大纲:selection 重点概述、selection 提供的 API、selection 调...