圖片,還可以這樣玩兒

前幾天,我在裝linux軟體的時候,發現一個比較好玩兒的軟體,叫aview,他可以把一張圖片轉化成文本的圖案。於是,就把軟體推薦給同事們。gy同學覺得有意思,於是乎回家用腳本和程序也做出了同樣的效果。

整好,老王前兩周剛剛跟大家講過圖像的處理和文字的識別,於是乎就熱炒熱賣,用之前的程序,加了幾行代碼,就做到了同樣的效果。先給大家看看結果:

原圖:

轉換後在shell中的效果:

怎麼樣,感覺還行吧~

作為程序員,就是有那麼一點點的好奇心,想知道怎麼弄的嘛?跟老王一起往下看吧~

·主流程

以上就是主流程的代碼,比較簡單,20行左右。具體操作如下:

1、從工程目錄的data下讀出文件;

2、為了在shell中輸出效果更好,將文件做一次長寬壓縮;

3、讀出圖片每個像素的RGB值;

4、將RGB做灰度處理;

5、將灰度圖列印成文字輸出。

怎麼樣,是不是很簡單呢?具體的我們往下走:

·讀取文件

讀文件很簡單,只需要用系統的庫,把文件讀取到內存即可。

·文件長寬壓縮

我們把讀取的文件,做長寬壓縮。我寫的函數支持長寬等比壓縮。壓縮的時候,可以自己通過坐標轉換,也可以用系統的函數實現。我這裡就圖簡單,用的系統函數。

·讀取像素RGB

我們將圖像的每個像素的RGB值讀取出來,放入到二維數組中,方便處理。

·灰度化

接下來,就是將每個像素的RGB值轉化為灰度值。灰度值,其實就是把RGB三原色做一個加權,也等同於YUV中的Y通道值。老王在之前的《拍照怎麼搜題》中詳細講過怎麼樣做灰度,如果想詳細了解,可以訂閱老王的微信:simplemain 進行查閱。


推薦閱讀:

互聯網如何更多的去獲得流量?
使用瑞雪採集雲爬蟲採集大眾點評商家信息
360雲盤收費回歸,你怎麼看?
Final cut很難嗎?1招教你快速剪出優秀短視頻,超簡單!
《暴雪將至》的首映現場情況怎麼樣?

TAG:圖像處理 | 互聯網 |