Thanks for the initial thoughts on this. Here's some more clarification: 1. The rectangles are not the same size or location, but they generally sit substantially in the upper right quadrant of the graph which is otherwise empty/white.
2. The graphs are all the same dimensions, but the actual size depends on the pixel density chosen by the user. The user can select 1x, 2x or 4x screen resolution, giving images that are either 1916x1061, 3832x2122 or 7664x4244 in size. 3. I'm planning to use the freely available tesseract OCR engine. This seems to work pretty well as long as the pixel density is 200dpi or higher, which means using the 2x or 4x screen resolution options, Here are a couple of links about Tesseract: https://en.wikipedia.org/wiki/Tesseract_(software) https://github.com/tesseract-ocr 4. I've been trying to use ideas from the image processing tutorials but my code is painfully slow. My method is as follows (assuming the rectangle is in the upper right quadrant): a. start along the top row of the graph at about 2/3 (or 3/4) along the row (about the middle of the top right quadrant) b. drop down vertically until I hit a black pixel c. follow the black pixels to the left & right to find the ends of the top line of the rectangle - this gives me the Xleft,Ytop and Xright,Ytop coordinates of the rectangle d. from the left end of the top line of the rectangle, drop down the black pixels until I hit a white pixel marking the bottom of the left line of the rectangle - this gives me the coordinates Xleft,Ybottom from which I also get Xright,Ybottom However, the X coordinates are correctly identified but not the Y coordinates. Ytop is OK but the drop down fails to stop before going well past the lower line of the rectangle. My script for the searching down the left edge of the rectangle is like the following: -- search down for bottom of left line where tXleft,tY is the identified left pixel of the top line: put tY + 1 into tYchk repeat while getPixelColour(tXleft,tYchk,tImageWidth) = cBlack and tYchk <= tMaxY add 1 to tYchk end repeat if tYchk < tMaxY then put tYchk - 1 into tYbottom end if 5. Here is the handler that I use to test the colour of a pixel: function getPixelColour pX, pY, pImgWidth local tPix, tImgPos, tRedVal, tGreenVal, tBlueVal put pY * pImgWidth + pX into tPix put tPix * 4 into tImgPos put charToNum(byte (tImgPos + 2) of image "graph" of stack "ImageHolder") into tRedVal put charToNum(byte (tImgPosn + 3) of image "graph" of stack "ImageHolder") into tGreenVal put charToNum(byte (tImgPosn + 4) of image "graph" of stack "ImageHolder") into tBlueVal return (tRedVal) -- & comma & tGreenVal & comma & tBlueVal) end getPixelColour 6. I've even tried changing the pixels to red as I check them so I can see where I've been but there's no sign of a red trail in the images! This is my handler for setting pixel colours: on setPixelColour pX, pY, pImgWidth, pRGB local tPix, tImgPos, tRval, tGval, tBval put pY * pImgWidth + pX into tPix put tPix * 4 into tImgPos set itemdelimiter to comma put item 1 of pRGB into tRval put item 2 of pRGB into tGval put item 3 of pRGB into tBval put numToChar(tRval) into byte (tImgPos + 2) of image "graph" of stack "ImageHolder" put numToChar(tGval) into byte (tImgPos + 3) of image "graph" of stack "ImageHolder" put numToChar(tBval) into byte (tImgPos + 4) of image "graph" of stack "ImageHolder" end setPixelColour Thanks for any ideas! Peter -- Peter Reid Loughborough, UK _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode