Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!csd4.milw.wisc.edu!mailrus!cwjcc!abvax!xanadu!set
From: set@xanadu (Scott Townsend)
Newsgroups: comp.sys.amiga
Subject: Re: Amiga and Image Processing: take 2
Message-ID: <822@abvax.UUCP>
Date: 11 Aug 89 22:00:08 GMT
References: <3043@deimos.cis.ksu.edu> <120820@sun.Eng.Sun.COM>
Sender: news@abvax.UUCP
Reply-To: set@xanadu.UUCP (Scott Townsend)
Distribution: usa
Organization: Allen-Bradley Company, Inc.; Industrial Computer Division; Highland Hts. OH
Lines: 44

I used to work on a contract for a company that builds machine vision systems.
Their box was basically a 256 shade frame grabber driven by a 68000, so it had
similar CPU power to a stock Amiga.  They used it for verifying assemblies and
labels.  With enough algorithm tricks we were able to get some decent speed
for the problems they were trying to solve: (decent = about 10 parts/sec)

- verify that there are the right number of needles in a needle bearing

- verify the number & location of an assembly's parts

- measure lengths, diameters, angles

- verify a label's orientation and readability (contrast-wise, not hype!)

- other things you can do with binary thresholding and/or edge finding

I did code-up some of the textbook image processing filter algorithms like
3x3 lowpass, 3x3 Sobel, and an arbitrary 3x3 convolution.  At 10 MHz (I think)
it did a 3x3 Sobel in under 10 seconds (320x200 resolution)  This is pretty
slow, but it was neat to watch.

Anyway, I just wanted to point out that some real-world vision jobs CAN be solved
by something like a stock Amiga, a '020 could help a lot with the instruction
cache, the data cache of a '030 doesn't buy much (with simple minded code
at least)

I should note that the frame buffer for this machine is not bitplane oriented
like the Amiga's graphics.  Does anyone know a quick way to go from bit-plane
oriented to pixel oriented graphics data?  I'd like to play around at home on
IFF images, but just doing a slew of ReadPixel() calls is awfully slow.

(If that isn't clear, I'll try a different explanation: the Amiga stores all
bit 0's next to each other in one plane, then all bit 1's, etc.  For image
processing, you prefer all pixel value bits in one byte -- well, that's not
too clear either, sorry)

When I first looked at the blitter's abilities to do a full-adder in two
blits I thought I could use it for all sorts of image stuff, but you run
out of chip memory way too soon! (at least on my "stock" 1000)

-----------------------------------------------------------------------------
Scott Townsend			   ...!{cwjcc,decvax,pyramid,uunet}!abvax!set
Polymath Corporation, currently working for (but not representing)
Allen-Bradley Company 747 Alpha Dr. Highland Hts. OH 44143 USA (216) 646-5233