在看到阮一峰的網路日誌中《骰子作畫的演算法》時,不經對其產生了濃厚的興趣,聯想到之前瀏覽到的程式設計師個性**注釋,發現裡面很多的注釋都可以用骰子作畫的**實現輸出,於是自己用python寫了乙份**。
翠花兒,上**:
from pil import image
if __name__ == '__main__':
img = image.open("demo.jpg") # 本地路徑
img_array = img.load() # 載入
x = 5 # 橫面畫素大小
y = 10 # 縱面畫素大小
for j in range(int(img.height / y)):
for k in range(int(img.width / x)):
a = 0
for l in range(x):
for m in range(y):
a = (img_array[x * k + l, y * j + m][0] +
img_array[x * k + l, y * j + m][1] +
img_array[x * k + l, y * j + m][2]) / 3 + a
a = a / (x * y) # 計算單位面積內平均畫素灰度
# 根據畫素灰度輸出字元,灰度越大,字元越簡單(偏白色)
《骰子作畫的演算法》文中描述到「如果區域劃分得越小,模擬圖的生成效果就越好。」
當畫素矩陣為[5,10]時,即:
x = 5 # 橫面畫素大小
y = 10 # 縱面畫素大小
效果圖如圖:
當畫素矩陣為[1,2]時,即:
x = 1 # 橫面畫素大小
y = 2 # 縱面畫素大小
效果圖如圖:
至此,便完成了簡化版的骰子作畫演算法的python**實現,小夥伴們可以自定義內容哦!
歡迎大佬們的指導和點評!
骰子作畫的演算法
程式設計師scott macdonald做了乙個很有趣的專案 骰子作畫。他用黑底白點的骰子。模擬出一張人像 把影象放大,就可以看得更清楚。他一共用了2500多顆骰子。最後的成品就是這樣。任何一張都可以用骰子模擬出來,演算法非常簡單 將分成若干個區域,每個區域經過計算以後,用1 6之間的乙個整數表示,...
骰子作畫的演算法
程式設計師scott macdonald做了乙個很有趣的專案 骰子作畫。他用黑底白點的骰子。具體來說,第一步,將分割成16畫素x16畫素的小方塊。for int i 0 i pic width 16 i 整數1,表示骰子朝上的一面有1個白點 整數2,表示有2個白點 以此類推。白點越少,表示這個區域越...
使用骰子作畫
本文參考 阮一峰老師 骰子作畫的演算法 1計算灰度值方法 任何顏色都由紅 綠 藍三基色組成,假如原來某點的顏色為rgb r,g,b 那麼,我們可以通過下面幾種方法,將其轉換為灰度 1.浮點演算法 gray r 0.3 g 0.59 b 0.11 2.整數方法 gray r 30 g 59 b 11 ...