Pillow ImageMath表達式語法

2021-07-14 14:36 更新

表達式是標準的python表達式,但它們是在非標準環(huán)境中計算的。您可以像往常一樣使用PIL方法,加上以下一組運算符和函數(shù):

標準運算符

您可以使用標準的算術運算符進行加法(+)、減法(-)、乘法(*)和除法(/)。

該模塊還支持一元減號(-)、模(%)和冪(**)運算符。

請注意,根據(jù)需要,所有操作都是用32位整數(shù)或32位浮點值完成的。例如,如果添加兩個8位圖像,結果將是一個32位整數(shù)圖像。如果將浮點常量添加到8位圖像中,結果將是32位浮點圖像。

您可以使用強制轉換convert()float()以及int() 下面描述的功能。

位運算符

該模塊還提供對單個位進行操作的操作。這包括與(&)或(|)和異或(^)。您還可以反轉(~)所有像素位。

注意,在應用按位運算之前,操作數(shù)被轉換為32位有符號整數(shù)。這意味著,如果反轉普通灰度圖像,將得到負值。您可以使用?and?(&)運算符屏蔽不需要的位。

位運算符不適用于浮點圖像。

邏輯運算符

邏輯運算符 ?and ?, ?or ?和 ?not ?處理整個圖像,而不是單個像素。

空圖像(所有像素為零)將被視為假。所有其他圖像均視為真。

注意 ?and ?和 ?or ?返回上次計算的操作數(shù),但不總是返回布爾值。

內置函數(shù)

這些功能應用于每個單獨的像素。

?abs(image)?

絕對值。

?convert(imagemode)?

將圖像轉換為給定模式。模式必須作為字符串常量提供。

?float(image)?

將圖像轉換為32位浮點。這等效于 ?convert(image, "F")?。

?int(image)?

將圖像轉換為32位整數(shù)。這等效于 ?convert(image, "I")?。

請注意,如果需要獲得正確的結果,1位和8位圖像將自動轉換為32位整數(shù)。

?max(image1image2)?

最大值。

?min(image1image2)?

最小值。



以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號