<h2>背景</h2><p>事情還要從一年前,我做的墨水屏早教機(jī)說起勤哗。https://www.zhangshengdong.com/post/baby_epaper/</p><p>雖然這個早教機(jī)寶寶的確很喜歡玩蛔趴,是吸引注意力的一大利器。但架不住這個墨水屏刷新實在太慢,幾乎要20秒谢揪,所以導(dǎo)致寶寶只有在圖片刷出來時,才會看它一眼濒持,這樣就顯得雞肋了键耕。</p><p>所以,最近我就在想柑营,有什么是不關(guān)注刷新時間的呢屈雄?</p><p>嗯,就是早年間流行過的 音樂相冊官套。</p><h2><i/>音樂相冊</h2><p>其實從早教機(jī)改成音樂相冊并不復(fù)雜酒奶。</p><p>早教機(jī)講究的是對應(yīng)的圖片和講解音頻同時出現(xiàn)蚁孔、同時切換,而音樂相冊則是照片的展示和音樂無關(guān)惋嚎。</p><p>所以我直接開兩個進(jìn)程杠氢,讓它們一個播放音樂,一個展示照片另伍,各玩各的就行啦鼻百。但由于機(jī)身上只有一對按鍵,所以最后權(quán)衡再三摆尝,決定用這一對按鈕來控制音樂的上下切換温艇。</p><p>大體程序如下:</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/6302584-eeb59b2823cf86ef.jpeg" contenteditable="false" img-data="{"format":"jpeg","size":61279,"height":528,"width":674}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><h2>自動轉(zhuǎn)換照片</h2><p>但只到這一步是不夠的,因為由于我的墨水屏只有7色堕汞,所以這時候每張照片都得要我親自打開photoshop勺爱,載入顏色表,把照片轉(zhuǎn)換成7元色表示才能用讯检。這樣一來琐鲁,照片多了工作量就大大不可接受了。</p><p>所以我需要在樹莓派上能夠自動完成任意照片的轉(zhuǎn)換人灼。</p><h3><i/>最簡單的思路:最近距離法</h3><p>第一個想到的方案自然就是最近距離法了围段,即判斷每個像素點距離色表中每個顏色的遠(yuǎn)近,從而把該像素設(shè)置為離它原有顏色最近的那個元色投放。</p><p>代碼:</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/6302584-c32a78408912a0b8.jpeg" contenteditable="false" img-data="{"format":"jpeg","size":22935,"height":288,"width":757}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>但這個初始方案很快就被現(xiàn)實給打臉了蒜撮。</p><p>原圖:</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/6302584-c88fb40ec4bdd7f2.jpeg" img-data="{"format":"jpeg","size":239224,"height":3880,"width":5184}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>最近距離法:</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/6302584-c211ba888d1f6858.jpeg" img-data="{"format":"jpeg","size":34883,"height":400,"width":640}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>可以發(fā)現(xiàn),最近距離法轉(zhuǎn)換出的就是色塊跪呈,變成了剪影的效果段磨,可以說毫無觀感可言,幾乎不能用了耗绿。</p><h3><i/>色彩均衡</h3><p>粗略的分析了一下苹支,感覺可能是因為這張照片的顏色大體偏黑,所以最近距離轉(zhuǎn)換出來就變成以黑白橙為主了误阻。</p><p>那如果原因是這樣的話债蜜,我是不是可以對它做一下類似白平衡的色彩均衡操作,就可以把7元色都顯示出來了呢究反?</p><p>代碼:</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/6302584-a275363edd34a0b9.jpeg" contenteditable="false" img-data="{"format":"jpeg","size":4375,"height":69,"width":276}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>色彩均衡:</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/6302584-cc5c40eee28e1671.jpeg" img-data="{"format":"jpeg","size":35555,"height":400,"width":640}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>可以發(fā)現(xiàn)寻定,紅色、藍(lán)色精耐、黃色的區(qū)域都變大了狼速,還增加了一點點綠色,可以說的確是實現(xiàn)了剛才的目的:把7元色都顯示出來卦停。但這依舊沒用啊向胡,這個效果是絕對不能夠使用的恼蓬。</p><h3><i/>Floyd-Steinberg擴(kuò)散抖動算法</h3><p>所以我就在想,那原先手動用photoshop處理時僵芹,它是用的什么算法呢处硬?</p><p>一通搜索,就發(fā)現(xiàn)了Floyd-Steinberg擴(kuò)散抖動算法拇派。</p><p>這個算法相當(dāng)于是荷辕,將像素使用我們的方法一最近距離法進(jìn)行標(biāo)準(zhǔn)化后,所產(chǎn)生的誤差疊加到相鄰像素上件豌,從而利用誤差擴(kuò)散實現(xiàn)抖動桐腌,最終使得平均量化誤差最小。</p><p>通俗一點說就是苟径,它把誤差分擔(dān)到周邊的像素上去,用周邊這一團(tuán)像素來模擬原圖中的這一團(tuán)區(qū)域躬审。</p><p>代碼:</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/6302584-4dc755eeaf0e827e.jpeg" contenteditable="false" img-data="{"format":"jpeg","size":74141,"height":790,"width":757}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>Floyd-Steinberg擴(kuò)散抖動算法:</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/6302584-1806da9e81ebc6dc.jpeg" img-data="{"format":"jpeg","size":136929,"height":400,"width":640}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>哇棘街,效果上完勝啊承边!驚艷遭殉!</p><h2><i/>緩存</h2><p>那么最后,由于不管是哪種算法博助,都需要逐一像素點的處理险污,哪怕是在樹莓派上使用了多線程、進(jìn)程富岳,也還要近7分鐘之久蛔糯。</p><p>所以就加入了緩存機(jī)制,在讀取圖片時窖式,會先去查找有沒有已經(jīng)處理好的緩存文件蚁飒,若沒有才會真的進(jìn)行轉(zhuǎn)換處理。</p><p>最終實現(xiàn)照:</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/6302584-d97e5e8bbfa56854.jpeg" img-data="{"format":"jpeg","size":221600,"height":2268,"width":4032}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div>
電子墨水屏音樂相冊
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門饶米,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脑漫,“玉大人髓抑,你說我怎么就攤上這事∮判遥” “怎么了吨拍?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長网杆。 經(jīng)常有香客問我羹饰,道長,這世上最難降的妖魔是什么碳却? 我笑而不...
- 正文 為了忘掉前任队秩,我火速辦了婚禮,結(jié)果婚禮上昼浦,老公的妹妹穿的比我還像新娘馍资。我一直安慰自己,他們只是感情好关噪,可當(dāng)我...
- 文/花漫 我一把揭開白布鸟蟹。 她就那樣靜靜地躺著,像睡著了一般使兔。 火紅的嫁衣襯著肌膚如雪建钥。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼馋吗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了秋秤?” 一聲冷哼從身側(cè)響起宏粤,我...
- 正文 年R本政府宣布,位于F島的核電站蚯斯,受9級特大地震影響薄风,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拍嵌,卻給世界環(huán)境...
- 文/蒙蒙 一遭赂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧横辆,春花似錦撇他、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至炫惩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阿浓,已是汗流浹背他嚷。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 從很小的時候開始,每逢重要的節(jié)日或者場合都會進(jìn)行照相钝域。照相早已是我們記錄日常點點滴滴的一類重要的辦法讽坏,還會有人將一...
- 現(xiàn)代的人愛生活路呜,愛拍照,愛分享,手機(jī)里存儲了好幾百張照片 經(jīng)常是等到提醒你手機(jī)內(nèi)存不足的時候 你才恍然:“我什么時...
- 現(xiàn)在很流行將自己的旅游照片或日常美照加上音樂做成音樂電子相冊胀葱,分享給朋友或者上傳到社交軟件上漠秋,這樣一來照片變得更加...
- 如今隨著網(wǎng)絡(luò)科技的突飛猛進(jìn)肥荔,電子相冊制作軟件也隨之越來越多。現(xiàn)在相冊制作可以分為大概兩類:軟件制作和在線制作朝群。我個...