Hi All
I have a nested array created using:
edges = scipy.misc.pilutil.imfilter(prent,'find_edges')
edges
array([[[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0],
...,
[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0]],
[[ 0, 255, 0],
[ 0, 0, 0],
[ 0, 0, 0],
...,
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 255, 0]],
[[ 0, 255, 0],
[ 0, 0, 0],
[ 0, 0, 0],
...,
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 255, 0]],
...,
[[ 0, 255, 0],
[ 0, 0, 0],
[ 0, 0, 0],
...,
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 255, 0]],
[[ 0, 255, 0],
[ 0, 0, 0],
[ 0, 0, 0],
...,
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 255, 0]],
[[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0],
...,
[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0]]], dtype=uint8)
I want to count the number of occurrences of certain unique elements in the array, I know what the elements are that I want to count [0,255,0], [255,0,0] and [0,0,255].I want to count the number of pixels of a particular color in a picture to determine the edge length and calculate areas and such.
array does not have a array.count() method and trying to count the instances using a nested for loop like:
for xiter in range(xindex):
for yiter in range(yindex):
if edges[xiter,yiter,:] == [255,0,0]:
groenpixelarea = groenpixelarea + 1
if edges[xiter,yiter,:] == [0,255,0]:
rooipixelarea = rooipixelarea + 1
if edges[xiter,yiter,:] == [0,0,255]:
bloupixelarea = bloupixelarea + 1
results in:
16 for xiter in range(xindex):
17 for yiter in range(yindex):
---> 18 if edges[xiter,yiter,:].any() == [255,0,0]:
19 groenpixelarea = groenpixelarea + 1
20 if edges[xiter,yiter,:] == [0,255,0]:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
WARNING: Failure executing file: <analiseerverwerkteprent.py>
What am I doing wrong?
Thanx
--
Dewald Pieterse