あるコースでPythonを使用して色を選択しようとしているiamは、コードのこの部分で勉強していて問題に直面しています。
red_threshold = 0
grean_threshold = 0
blue_threshold = 0
rgb_threshold = [red_threshold,grean_threshold,blue_threshold]
thresholds = (image[:,:,0] < rgb_threshold[0])|(image[:,:,1] < rgb_threshold[1])|(image[:,:,2] < rgb_threshold[2])
color_selection[thresholds] = [0,0,0]
'color_selection [thresholds] = [0,0,0]'の問題は、この行がどのように機能するかを誰かが説明できます
よろしくお願いします
それimage
がn×n×3の配列であるthresholds
とすると、ブール値のn×nの配列になります。実際、次のように計算thresholds
します。
thresholds = (image[:,:,0] < rgb_threshold[0])|
(image[:,:,1] < rgb_threshold[1])|
(image[:,:,2] < rgb_threshold[2])
だからここthreshold[i,j]
であろうTrue
場合と赤色チャネルはその画素(SOの値がある場合のみimage[i,j,0]
)よりも低いですred_threshold
。または、緑のチャネルのピクセルの値が(so image[i,j,1]
)がgreen_threshold
;よりも小さい。または、青のチャネルのピクセルの値が(so image[i,j,2]
)がblue_threshold
。よりも小さい。
そのための要素の次threshold[i,j]
ではTrue
、我々が割り当てられますcolor_selection[i,j,0] = 0
、color_selection[i,j,1] = 0
とcolor_selection[i,j,2] = 0
。これは、ブール配列を使用してインデックスを作成すると、マスキングとして機能するためです。
詳細については、numpyドキュメントのブール値またはマスクインデックス配列に関するセクションを参照してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加