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