numpy 的陣列內容比對

最近看到別人分享的一個副程式,因為想要修改,可是「完全」無法理解,為什麼可以這樣去使用,原來是變成了自定義的物件,所以可以取出特定項目進行一一的比對。

先來看看原本的程式碼:

import numpy as np

def changeColor(im, from_rgb_value, to_rgb_value):
    data = np.array(im)
    red, green, blue = data[:,:,0], data[:,:,1], data[:,:,2]
    r1, g1, b1 = from_rgb_value
    mask = (red == r1) & (green == g1) & (blue == b1)

看到這裡,沒想到 red == r1 的比對是 array 裡的項目一一比對,而不是2個boolean object 內容的比對。而比對的結果居然還可以放回去 mask array 裡,這個真的很神奇。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *