A method of error correction for a two-dimensional symbol designed for optical reading by a symbol reader, the 2D symbol having a plurality of cells of a designated first color and a designated second color, which cells are arranged in a two-dimensional matrix; the 2D symbol further having a plurality of codewords at specified locations within the 2D symbol, each codeword comprising at least one specified group of cells; the plurality of codewords comprising a first plurality of data codewords storing data indicated by a pattern of first and second color cells in a codeword, and a second plurality of error-correction codewords derived from the first plurality of data codewords and providing redundancy for the data represented by the first plurality of data codewords, the method comprising: optically reading, by an optical scanner of the symbol reader, the plurality of codewords in the 2D symbol; determining, via a hardware processor of the symbol reader, that a location for a codeword, which exhibits a lowest minimum interior contrast level, is optically ambiguous, the determining comprising: selecting a codeword based on a set of codeword locations within the 2D symbol; and performing a contrast analysis on the selected codeword, wherein the contrast analysis identifies a minimum interior contrast level for the selected codeword, and wherein performing the contrast analysis on the selected codeword comprises: determining a dark/light threshold level, wherein the dark/light threshold level is indicative of a reflectance above which a cell is assessed as being of the designated first color and below which a cell is assessed as being of the designated second color; determining a level of difference between the reflectance of each cell of the selected codeword and the dark/light threshold level; and determining the minimum interior contrast level for the selected codeword by determining, among all the cells within the selected codeword, a specific cell with a lowest level of difference between the reflectance of the specific cell and the dark/light threshold level; marking, via the hardware processor, in an error correction equation, stored in a memory of the symbol reader, the location of the optically ambiguous codeword within the 2D symbol; and executing, via the hardware processor, the EC equation to correct errors in the read plurality of codewords. optically reading, by an optical scanner of the symbol reader, the plurality of codewords in the 2D symbol; determining, via a hardware processor of the symbol reader, that a location for a codeword, which exhibits a lowest minimum interior contrast level, is optically ambiguous, the determining comprising: selecting a codeword based on a set of codeword locations within the 2D symbol; and performing a contrast analysis on the selected codeword, wherein the contrast analysis identifies a minimum interior contrast level for the selected codeword, and wherein performing the contrast analysis on the selected codeword comprises: determining a dark/light threshold level, wherein the dark/light threshold level is indicative of a reflectance above which a cell is assessed as being of the designated first color and below which a cell is assessed as being of the designated second color; determining a level of difference between the reflectance of each cell of the selected codeword and the dark/light threshold level; and determining the minimum interior contrast level for the selected codeword by determining, among all the cells within the selected codeword, a specific cell with a lowest level of difference between the reflectance of the specific cell and the dark/light threshold level; selecting a codeword based on a set of codeword locations within the 2D symbol; and performing a contrast analysis on the selected codeword, wherein the contrast analysis identifies a minimum interior contrast level for the selected codeword, and wherein performing the contrast analysis on the selected codeword comprises: determining a dark/light threshold level, wherein the dark/light threshold level is indicative of a reflectance above which a cell is assessed as being of the designated first color and below which a cell is assessed as being of the designated second color; determining a level of difference between the reflectance of each cell of the selected codeword and the dark/light threshold level; and determining the minimum interior contrast level for the selected codeword by determining, among all the cells within the selected codeword, a specific cell with a lowest level of difference between the reflectance of the determining a dark/light threshold level, wherein the dark/light threshold level is indicative of a reflectance above which a cell is assessed as being of the designated first color and below which a cell is assessed as being of the designated second color; determining a level of difference between the reflectance of each cell of the selected codeword and the dark/light threshold level; and determining the minimum interior contrast level for the selected codeword by determining, among all the cells within the selected codeword, a specific cell with a lowest level of difference between the reflectance of the specific cell and the dark/light threshold level; marking, via the hardware processor, in an error correction equation, stored in a memory of the symbol reader, the location of the optically ambiguous codeword within the 2D symbol; and executing, via the hardware processor, the EC equation to correct errors in the read plurality of codewords.