Libraryless. Click here for Pure Java version (7002L/40K).
sclass URecognizer { IIntegralImage image; *() {} *(IIntegralImage *image) {} *(BufferedImage image) { this.image = IntegralImage(image); } // returns 0, 1 or 2 int posterizeToInt(double x) { ret ifloor(clampZeroToOne(x)*3); } // returns 0, .5 or 1 double posterizeInPlace(double x) { ret posterizeToInt(x)*.5; } class Cell { // Original image and which part we are looking at DoubleRange xClip, yClip; // color transformations in place DoubleRange[] colorClips = new[3]; Cell copy() { new Cell c; c.xClip = xClip; arrayCopy(colorClips, c.colorClips); ret c; } Rect rectInImage() { ret toRect_floor(doubleRectFromRanges(xClip, yClip)); } // get color of cell double color(int channel) { double color = ii_averageBrightnessOfArea(image, rectInImage(), channel); ret transformBetweenDoubleRanges(color, colorClips[channel], zeroToOne()); } // unposterized color of all 3 channels double[] color() { double[] c = new[3]; for i to 3: c[i] = color(i); ret c; } toString { ret "Color: " + asList(color()); } int posterizedIntColor(int channel) { ret posterizeToInt(color(channel)); } // get sub-cells Cell[] xSplit() { Cell[] cells = new[3]; for i to 3: cells[i] = xSlice(i/3.0, (i+1)/3.0); ret cells; } Cell xSlice(double a, double b) { Cell c = copy(); c.xClip = transformBetweenDoubleRanges(DoubleRange(a, b), zeroToOne(), xClip); ret c; } Cell[] ySplit() { Cell[] cells = new[3]; for i to 3: cells[i] = ySlice(i/3.0, (i+1)/3.0); ret cells; } Cell ySlice(double a, double b) { Cell c = copy(); c.yClip = transformBetweenDoubleRanges(DoubleRange(a, b), zeroToOne(), yClip); ret c; } } // make the root cell Cell rootCell() { new Cell c; c.xClip = doubleRange(0, image.getWidth()); c.yClip = doubleRange(0, image.getHeight()); for i to 3: c.colorClips[i] = doubleRange(0, 255); ret c; } }
Began life as a copy of #1031930
download show line numbers debug dex old transpilations
Travelled to 3 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx
No comments. add comment
| Snippet ID: | #1031932 | 
| Snippet name: | URecognizer [backup with xClip, yClip] | 
| Eternal ID of this version: | #1031932/4 | 
| Text MD5: | b77a8c251349350772ec73df8563e83f | 
| Transpilation MD5: | 5a8a19dc832fd7f4b08a1ba9c61a50bd | 
| Author: | stefan | 
| Category: | javax / image recognition | 
| Type: | JavaX fragment (include) | 
| Public (visible to everyone): | Yes | 
| Archived (hidden from active list): | No | 
| Created/modified: | 2021-08-02 05:24:02 | 
| Source code size: | 2258 bytes / 96 lines | 
| Pitched / IR pitched: | No / No | 
| Views / Downloads: | 411 / 519 | 
| Version history: | 3 change(s) | 
| Referenced in: | [show references] |