# [Numpy-discussion] binary thinning

Bob Klimek klimek at grc.nasa.gov
Tue Dec 7 15:19:17 CST 2004

```Hi,

I've been playing around with the binary_hit_or_miss function in the
nd_image and it seems to work well in general. I understand that binary
thinning can be generated by using hit_or_miss, however I can't seem to
get it to work right. Anyone have a code snippet that does the job?

http://homepages.inf.ed.ac.uk/rbf/HIPR2/thin.htm

My implementation is as follows:

## from HIPR2 web site

## [0,0,0]
## [x,1,x]
## [1,1,1]
struct1 = numarray.array(
[[0, 0, 0],
[0, 1, 0],
[1, 1, 1]])
struct2 = numarray.array(
[[1, 1, 1],
[0, 0, 0],
[0, 0, 0]])

## [x,0,0]
## [1,1,0]
## [x,1,x]
struct3 = numarray.array(
[[0, 0, 0],
[1, 1, 0],
[0, 1, 0]])
struct4 = numarray.array(
[[0, 1, 1],
[0, 0, 1],
[0, 0, 0]])

b = []
for i in range(4):
temp = ND.binary_hit_or_miss(a, struct1, struct2)
b.append(temp)
temp = ND.binary_hit_or_miss(a, struct3, struct4)
b.append(temp)

struct1 = ND.rotate(struct1, 90)
struct2 = ND.rotate(struct2, 90)
struct3 = ND.rotate(struct3, 90)
struct4 = ND.rotate(struct4, 90)

result = b[0]
for i in range(7):
result = numarray.logical_or(result, b[i+1])

result = a - result

Bob

```