日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python n个list如何组成矩阵_通过学习在processing中操作图片,掌握python 列表操作...

發(fā)布時間:2024/7/5 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python n个list如何组成矩阵_通过学习在processing中操作图片,掌握python 列表操作... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這次的教學(xué)非常簡單,只需要安裝了python模式的processing就可以(安裝教程見專欄目錄)。我從網(wǎng)上找了一個比100*100稍微大一點的圖片,你可以也找一個。然后我們就可以一起開始今天的學(xué)習(xí)啦~(請先閱讀本專欄中的processing入門教程部分)

本專欄中的processing入門教程部分

關(guān)于圖片:圖片請找一個類似大小的,然后放在processing工程的文件夾中。打開某個processing工程文件夾的快捷方法是這樣的:先新建一個空白processing文件并保存,然后在速寫本中就能找到“打開程序目錄”了。

打開程序目錄

processing讀取并展示圖片

def

上面就是一個完整的小程序啦。

操作圖片的像素向量

def

這里用到的圖片相關(guān)的內(nèi)置函數(shù)有點多,但是不難理解。我們逐個講解:

img.pixels 是存儲圖片像素的列表,每個像素用一個color常量表示。

img.loadPixels() : 用于產(chǎn)生img.pixels。執(zhí)行了這一句之后,img.pixels 才能被正常訪問。

img.updatePixels():讓processing根據(jù)我們對img.pixels的更改,來更改對應(yīng)的圖片。注意讓list的大小在更改后保持和原先一致。

而color(0, 0, 0)中的三個值分別代表了RGB的一個值,并返回一個顏色常量。

在這個程序里,我們把像素矩陣中的前1000個點涂黑,效果如下:

遮擋上邊部分

向量和矩陣來回轉(zhuǎn)化

可能在上一部分中,當(dāng)我說到“像素向量”的時候,有一部分機智的同學(xué)就會有疑問了:“像素不應(yīng)該是組成一個矩陣,也就是列表的列表嗎?”。我們先看一下官方文檔中對于img.pixels的描述:

img.pixels

然后再結(jié)合上個程序的效果,我們大膽猜測,這個向量代表的意思是把圖片中的矩陣一行行的拼接成一個向量。我們可以寫一個程序驗證一下:

def

請自己運行觀看效果,這里只提供一個截圖:

動態(tài)遮擋

從這個動畫可以看出,img.array究竟是以怎樣的方式表示一個圖片的。其中用到了變色的小技巧,不熟悉的同學(xué)可以把顏色用color(0, 0, 0)代替。

那么我們到這里就把像素向量怎么和圖片像素的對應(yīng)關(guān)系給搞清楚了。現(xiàn)在我們就寫一個函數(shù)來做圖片像素向量和普通矩陣(列表的列表)之間的轉(zhuǎn)換。

def

這就是我寫出的函數(shù)。整個函數(shù)非常的pythonic。感興趣的同學(xué)可以自己測試一下這兩個函數(shù),下面我們直接使用這兩個函數(shù)做進一步的編程。

程序:遮擋住圖片的左邊部分

def

遮擋左邊部分

讓圖片動起來

有了上個章節(jié)中的兩個向量矩陣轉(zhuǎn)換函數(shù),我們就可以做更加更加復(fù)雜的操作了。比如說,讓圖片進行循環(huán)滾動:

# 把上個程序中的draw()函數(shù)替換成這個

通過調(diào)用python列表的pop()和insert()方法,我們就實現(xiàn)了讓圖片滾動起來。列表是不是很強大呢?(請自行運行觀看效果)

讓蘋果快速滾動飛起來

好了,我們不僅要讓蘋果循環(huán)滾動起來,還要讓蘋果滾得快到飛起。(蘋果:“我太難了”)

# 把上個程序中的draw()函數(shù)替換成這個

這個程序的原理就是,當(dāng)一個物體快速移動的時候,人眼是能夠自動“補充畫面幀數(shù)”的,所以我們不再一個一個像素的滾動,而是每次直接把n列像素從一邊拿下來接到另一邊。(通過在setup()中設(shè)置frameRate()能夠控制程序更新速度)

快速滾動的蘋果https://www.zhihu.com/video/1175124935423574016

思考題

如何實現(xiàn)快速的讓蘋果移出畫面呢?你有沒有其他更有意思的主意呢?

恰飯時間

強烈推薦《python基礎(chǔ)教程》,點贊加關(guān)注專欄,可以獲得作者認真標注而且手動加詳細目錄的pdf電子版文件。

總結(jié)

以上是生活随笔為你收集整理的python n个list如何组成矩阵_通过学习在processing中操作图片,掌握python 列表操作...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。