> Maybe this helps: > > # silly algorithm for guessing blue pixels > >>> bluemask = (a[...,2] > 1.25*a[...,1]) & (a[...,2] > 1.25*a[...,0]) > > >>> a[bluemask, :] > array([[107, 11, 185], > [101, 91, 251], > [ 61, 23, 79], > [ 25, 131, 211], > [169, 83, 214], > [ 2, 88, 216], > [ 71, 78, 250], > [ 23, 127, 183]], dtype=uint8) > > Cheers > Stéfan
Thanks Stéfan, that"s very cool. But the xy coords were tossed.
Can you show me a cheap way to return a line:
line=[(3, 0), (2, 1), (0, 2), (1, 2), (3, 2), (0, 3), (4, 3), (3, 4)]
type-o-thing?
I think I decyphered the boolean array I was getting from
def test5(a, THRESH):
RED, GRN, BLU = 0, 1, 2
line_pix = ((a[:, :, RED] <= THRESH) &
(a[:, :, GRN] <= THRESH) &
(a[:, :, BLU] >= THRESH))
print "test5: line_pix = %r" % (line_pix)
return line_pix
#test5: line_pix = array(
# x=0 1 2 3 4
# y=0 [[False, False, False, True, False], # [3, 0] is blue
# 1 [False, False, True, False, False], # [2, 1] is blue
# 2 [ True, True, False, True, False], # [0, 2] xxx, [1, 2] is blue,
[3, 2] xxx
# 3 [ True, False, False, True, False], # [0, 3] is blue, [4, 3]
# 4 [False, False, False, True, False]]) # [3, 4] is blue
# So now I have to fawn over it for the coords. Is there a cheaper way?
def dump_bool_array(b):
very_blue_pixels = []
w = DIM[0]
x = y = 0
for xyslice in b:
for bool in xyslice:
if bool:
very_blue_pixels.append((x, y))
x += 1
if x==w: x=0
y += 1
print "dump_bool_array=%r" % (very_blue_pixels)
# [(3, 0), (2, 1), (0, 2), (1, 2), (3, 2), (0, 3), (4, 3), (3, 4)]
THrow away the other attachment. It had a very bad bug, swapping
x and y. Ug.
paul
----
def test7(a, fact):
RED, GRN, BLU = 0, 1, 2
bluemask = (a[...,BLU] > fact*a[...,GRN]) & \
(a[...,BLU] > fact*a[...,RED])
b = a[bluemask, :]
print "test 7 with factor=%f" % fact
return b
test_minmax.py
Description: Binary data
_______________________________________________ Numpy-discussion mailing list [email protected] http://projects.scipy.org/mailman/listinfo/numpy-discussion
