Pillow ImageMath表達(dá)式語法

2021-07-14 14:36 更新

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

標(biāo)準(zhǔn)運(yùn)算符

您可以使用標(biāo)準(zhǔn)的算術(shù)運(yùn)算符進(jìn)行加法(+)、減法(-)、乘法(*)和除法(/)。

該模塊還支持一元減號(hào)(-)、模(%)和冪(**)運(yùn)算符。

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

您可以使用強(qiáng)制轉(zhuǎn)換convert(),float()以及int() 下面描述的功能。

位運(yùn)算符

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

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

位運(yùn)算符不適用于浮點(diǎn)圖像。

邏輯運(yùn)算符

邏輯運(yùn)算符 ?and ?, ?or ?和 ?not ?處理整個(gè)圖像,而不是單個(gè)像素。

空?qǐng)D像(所有像素為零)將被視為假。所有其他圖像均視為真。

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

內(nèi)置函數(shù)

這些功能應(yīng)用于每個(gè)單獨(dú)的像素。

?abs(image)?

絕對(duì)值。

?convert(imagemode)?

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

?float(image)?

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

?int(image)?

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

請(qǐng)注意,如果需要獲得正確的結(jié)果,1位和8位圖像將自動(dòng)轉(zhuǎn)換為32位整數(shù)。

?max(image1image2)?

最大值。

?min(image1image2)?

最小值。



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)