Python實現骰子作畫演算法

2021-09-24 13:18:46 字數 1900 閱讀 5450

在看到阮一峰的網路日誌中《骰子作畫的演算法》時,不經對其產生了濃厚的興趣,聯想到之前瀏覽到的程式設計師個性**注釋,發現裡面很多的注釋都可以用骰子作畫的**實現輸出,於是自己用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 ...