suchen Indizes von RGB-Werten in numpy 3D arrays
Verfasst: Dienstag 31. August 2021, 14:47
Hallo,
vielleicht eine Newbie Frage:
Wie finde ich die Indizes in einem Image-Array für das Vorkommen eines bestimmten RGB Werts?
Wo ich gescheitert bin:
Ich möchte die gefundenen RGB Werte separat verändern.
Danke für eure Tipps
Erhy
vielleicht eine Newbie Frage:
Wie finde ich die Indizes in einem Image-Array für das Vorkommen eines bestimmten RGB Werts?
Wo ich gescheitert bin:
Code: Alles auswählen
be = np.arange( 5 * 4 * 3)
# zum Beispiel
be[ ( be % 3 ) != 0 ] = 0
be[ ( be % 4 ) == 0] = 0
be_rgb = be.reshape( 5, 4, 3)
be_rgb
[
[[ 0, 0, 0], [ 3, 0, 0], [ 6, 0, 0], [ 9, 0, 0]],
[[ 0, 0, 0], [15, 0, 0], [18, 0, 0], [21, 0, 0]],
[[ 0, 0, 0], [27, 0, 0], [30, 0, 0], [33, 0, 0]],
[[ 0, 0, 0], [39, 0, 0], [42, 0, 0], [45, 0, 0]],
[[ 0, 0, 0], [51, 0, 0], [54, 0, 0], [57, 0, 0]]
]
sub = np.array( [0,0,0], dtype=be_rgb.dtype )
be_rgb_w = np.where( be_rgb[ : , : ] == sub )
be_rgb[ : , : ][ be_rgb_w ]
# ist:
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0])
# anstatt wie von mir erwartet
[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0]]
Danke für eure Tipps
Erhy