最近看到別人分享的一個副程式,因為想要修改,可是「完全」無法理解,為什麼可以這樣去使用,原來是變成了自定義的物件,所以可以取出特定項目進行一一的比對。
先來看看原本的程式碼:
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 裡,這個真的很神奇。