- java.lang.Object
-
- com.uddernetworks.newocr.detection.SearchImage
-
public class SearchImage extends java.lang.Object
Provides a way to easily get touching coordinates of black pixels. This uses a boolean array, because they will always be either black or white, and it's *much* faster than reading an image's color.- Since:
- April 25, 2019
-
-
Constructor Summary
Constructors Constructor Description SearchImage(boolean[][] values)
Creates aSearchImage
from a boolean grid.
-
Method Summary
Modifier and Type Method Description int
getHeight()
Gets the height computed from the internal value 2D array.SearchImage
getSubimage(int x, int y, int width, int height)
Gets aSearchImage
from the bounds of the current image.boolean
getValue(int x, int y)
Gets the coordinate of the given coordinates.boolean[][]
getValues()
Gets the raw values grid.int
getWidth()
Gets the width computed from the internal value 2D array.boolean
hasValue(int x, int y)
Gets the value of the given coordinates.void
scanFrom(int originalX, int originalY, java.util.List<IntPair> coordinates)
Adds the surrounding black pixels from the given coordinate to the coordinates parameter.java.awt.image.BufferedImage
toImage()
java.lang.String
toString()
-
-
-
Constructor Detail
-
SearchImage
public SearchImage(boolean[][] values)
Creates aSearchImage
from a boolean grid.- Parameters:
values
- The boolean grid of the image
-
-
Method Detail
-
scanFrom
public void scanFrom(int originalX, int originalY, java.util.List<IntPair> coordinates)
Adds the surrounding black pixels from the given coordinate to the coordinates parameter. When a new value sis count, it is set to false to stop duplicates without checking each entry of the map.- Parameters:
originalX
- The X location of the current black pixeloriginalY
- The Y location of the current black pixelcoordinates
- The mutable list of coordinates that will have each new coordinate added to it
-
hasValue
public boolean hasValue(int x, int y)
Gets the value of the given coordinates. If it's true, it will set the value to false and return true.- Parameters:
x
- The X coordinate to checky
- The Y coordinate to check- Returns:
- The value of the coordinate, or false if the position is inexistant
-
getValue
public boolean getValue(int x, int y)
Gets the coordinate of the given coordinates. Similar tohasValue(int, int)
, but it performs no mutation to the values grid.- Parameters:
x
- The X coordinate to checky
- The Y coordinate to check- Returns:
- The value of the coordinates
-
getValues
public boolean[][] getValues()
Gets the raw values grid.- Returns:
- The raw values grid
-
getWidth
public int getWidth()
Gets the width computed from the internal value 2D array.- Returns:
- The width of the image
-
getHeight
public int getHeight()
Gets the height computed from the internal value 2D array.- Returns:
- The height of the image
-
getSubimage
public SearchImage getSubimage(int x, int y, int width, int height)
Gets aSearchImage
from the bounds of the current image.- Parameters:
x
- The X position to start aty
- The Y position to start atwidth
- The width of the sub imageheight
- The height of the sub image- Returns:
- The inner image from the coordinates given
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
toImage
public java.awt.image.BufferedImage toImage()
-
-