private static void assertCorrectImage2result(String path, ExpandedProductParsedResult expected) { RSSExpandedReader rssExpandedReader = new RSSExpandedReader(); if (!File.Exists(path)) { // Support running from project root too path = Path.Combine("..\\..\\..\\Source", path); } #if !SILVERLIGHT var image = new Bitmap(Image.FromFile(path)); #else var image = new WriteableBitmap(0, 0); image.SetSource(File.OpenRead(path)); #endif BinaryBitmap binaryMap = new BinaryBitmap(new GlobalHistogramBinarizer(new BitmapLuminanceSource(image))); int rowNumber = binaryMap.Height / 2; BitArray row = binaryMap.getBlackRow(rowNumber, null); Result theResult = rssExpandedReader.decodeRow(rowNumber, row, null); Assert.IsNotNull(theResult); Assert.AreEqual(BarcodeFormat.RSS_EXPANDED, theResult.BarcodeFormat); ParsedResult result = ResultParser.parseResult(theResult); Assert.AreEqual(expected, result); }
public void testDecodeDataCharacter() { RSSExpandedReader rssExpandedReader = new RSSExpandedReader(); String path = "test/data/blackbox/rssexpanded-1/3.png"; if (!File.Exists(path)) { // Support running from project root too path = Path.Combine("..\\..\\..\\Source", path); } #if !SILVERLIGHT var image = new Bitmap(Image.FromFile(path)); #else var image = new WriteableBitmap(0, 0); image.SetSource(File.OpenRead(path)); #endif BinaryBitmap binaryMap = new BinaryBitmap(new GlobalHistogramBinarizer(new BitmapLuminanceSource(image))); BitArray row = binaryMap.getBlackRow(binaryMap.Height / 2, null); int[] startEnd = { 145, 243 }; //image pixels where the A1 pattern starts (at 124) and ends (at 214) int value = 0; // A #if !SILVERLIGHT FinderPattern finderPatternA1 = new FinderPattern(value, startEnd, startEnd[0], startEnd[1], image.Height / 2); #else FinderPattern finderPatternA1 = new FinderPattern(value, startEnd, startEnd[0], startEnd[1], image.PixelHeight / 2); #endif //{1, 8, 4, 1, 1}; DataCharacter dataCharacter = rssExpandedReader.decodeDataCharacter(row, finderPatternA1, true, false); Assert.AreEqual(19, dataCharacter.Value); Assert.AreEqual(1007, dataCharacter.ChecksumPortion); }
public void testRetrieveNextPairPatterns() { RSSExpandedReader rssExpandedReader = new RSSExpandedReader(); String path = "test/data/blackbox/rssexpanded-1/3.png"; if (!File.Exists(path)) { // Support running from project root too path = Path.Combine("..\\..\\..\\Source", path); } #if !SILVERLIGHT var image = new Bitmap(Image.FromFile(path)); #else var image = new WriteableBitmap(0, 0); image.SetSource(File.OpenRead(path)); #endif BinaryBitmap binaryMap = new BinaryBitmap(new GlobalHistogramBinarizer(new BitmapLuminanceSource(image))); int rowNumber = binaryMap.Height / 2; BitArray row = binaryMap.getBlackRow(rowNumber, null); List <ExpandedPair> previousPairs = new List <ExpandedPair>(); ExpandedPair pair1 = rssExpandedReader.retrieveNextPair(row, previousPairs, rowNumber); previousPairs.Add(pair1); FinderPattern finderPattern = pair1.FinderPattern; Assert.IsNotNull(finderPattern); Assert.AreEqual(0, finderPattern.Value); ExpandedPair pair2 = rssExpandedReader.retrieveNextPair(row, previousPairs, rowNumber); previousPairs.Add(pair2); finderPattern = pair2.FinderPattern; Assert.IsNotNull(finderPattern); Assert.AreEqual(0, finderPattern.Value); }
private static void assertCorrectImage2binary(String path, String expected) { RSSExpandedReader rssExpandedReader = new RSSExpandedReader(); if (!File.Exists(path)) { // Support running from project root too path = Path.Combine("..\\..\\..\\Source", path); } #if !SILVERLIGHT var image = new Bitmap(Image.FromFile(path)); #else var image = new WriteableBitmap(0, 0); image.SetSource(File.OpenRead(path)); #endif BinaryBitmap binaryMap = new BinaryBitmap(new GlobalHistogramBinarizer(new BitmapLuminanceSource(image))); int rowNumber = binaryMap.Height / 2; BitArray row = binaryMap.getBlackRow(rowNumber, null); Assert.IsTrue(rssExpandedReader.decodeRow2pairs(rowNumber, row)); BitArray binary = BitArrayBuilder.buildBitArray(rssExpandedReader.Pairs); Assert.AreEqual(expected, binary.ToString()); }
public void testDecodingRowByRow() { RSSExpandedReader rssExpandedReader = new RSSExpandedReader(); BinaryBitmap binaryMap = TestCaseUtil.getBinaryBitmap("test/data/blackbox/rssexpandedstacked-2/1000.png"); int firstRowNumber = binaryMap.Height / 3; BitArray firstRow = binaryMap.getBlackRow(firstRowNumber, null); Assert.IsFalse(rssExpandedReader.decodeRow2pairs(firstRowNumber, firstRow)); Assert.AreEqual(1, rssExpandedReader.Rows.Count); ExpandedRow firstExpandedRow = rssExpandedReader.Rows[0]; Assert.AreEqual(firstRowNumber, firstExpandedRow.RowNumber); Assert.AreEqual(2, firstExpandedRow.Pairs.Count); firstExpandedRow.Pairs[1].FinderPattern.StartEnd[1] = 0; int secondRowNumber = 2 * binaryMap.Height / 3; BitArray secondRow = binaryMap.getBlackRow(secondRowNumber, null); secondRow.reverse(); Assert.IsTrue(rssExpandedReader.decodeRow2pairs(secondRowNumber, secondRow)); var totalPairs = rssExpandedReader.Pairs; Result result = RSSExpandedReader.constructResult(totalPairs); Assert.AreEqual("(01)98898765432106(3202)012345(15)991231", result.Text); }
public void testDecodingRowByRow() { var rssExpandedReader = new RSSExpandedReader(); var binaryMap = TestCaseUtil.getBinaryBitmap("test/data/blackbox/rssexpandedstacked-2/1000.png"); var firstRowNumber = binaryMap.Height / 3; var firstRow = binaryMap.getBlackRow(firstRowNumber, null); Assert.IsFalse(rssExpandedReader.decodeRow2pairs(firstRowNumber, firstRow)); Assert.AreEqual(1, rssExpandedReader.Rows.Count); var firstExpandedRow = rssExpandedReader.Rows[0]; Assert.AreEqual(firstRowNumber, firstExpandedRow.RowNumber); Assert.AreEqual(2, firstExpandedRow.Pairs.Count); firstExpandedRow.Pairs[1].FinderPattern.StartEnd[1] = 0; var secondRowNumber = 2 * binaryMap.Height / 3; var secondRow = binaryMap.getBlackRow(secondRowNumber, null); secondRow.reverse(); Assert.IsTrue(rssExpandedReader.decodeRow2pairs(secondRowNumber, secondRow)); var totalPairs = rssExpandedReader.Pairs; var result = RSSExpandedReader.constructResult(totalPairs); Assert.AreEqual("(01)98898765432106(3202)012345(15)991231", result.Text); }
public void testRetrieveNextPairPatterns() { var rssExpandedReader = new RSSExpandedReader(); var image = TestCaseUtil.readImage("test/data/blackbox/rssexpanded-1", "3.png"); var binaryMap = new BinaryBitmap(new GlobalHistogramBinarizer(new BitmapLuminanceSource(image))); var rowNumber = binaryMap.Height / 2; var row = binaryMap.getBlackRow(rowNumber, null); var previousPairs = new List <ExpandedPair>(); var pair1 = rssExpandedReader.retrieveNextPair(row, previousPairs, rowNumber); previousPairs.Add(pair1); var finderPattern = pair1.FinderPattern; Assert.IsNotNull(finderPattern); Assert.AreEqual(0, finderPattern.Value); var pair2 = rssExpandedReader.retrieveNextPair(row, previousPairs, rowNumber); previousPairs.Add(pair2); finderPattern = pair2.FinderPattern; Assert.IsNotNull(finderPattern); Assert.AreEqual(0, finderPattern.Value); }
public void testCompleteDecode() { var rssExpandedReader = new RSSExpandedReader(); var binaryMap = TestCaseUtil.getBinaryBitmap("test/data/blackbox/rssexpandedstacked-2/1000.png"); var result = rssExpandedReader.decode(binaryMap); Assert.AreEqual("(01)98898765432106(3202)012345(15)991231", result.Text); }
public void testCompleteDecode() { RSSExpandedReader rssExpandedReader = new RSSExpandedReader(); BinaryBitmap binaryMap = TestCaseUtil.getBinaryBitmap("test/data/blackbox/rssexpandedstacked-2/1000.png"); Result result = rssExpandedReader.decode(binaryMap); Assert.AreEqual("(01)98898765432106(3202)012345(15)991231", result.Text); }
private static void assertCorrectImage2binary(String imageFileName, String expected) { var rssExpandedReader = new RSSExpandedReader(); var binaryMap = TestCaseUtil.getBinaryBitmap("test/data/blackbox/rssexpanded-1", imageFileName); var rowNumber = binaryMap.Height / 2; var row = binaryMap.getBlackRow(rowNumber, null); Assert.IsTrue(rssExpandedReader.decodeRow2pairs(rowNumber, row)); var binary = BitArrayBuilder.buildBitArray(rssExpandedReader.Pairs); Assert.AreEqual(expected, binary.ToString()); }
private static void assertCorrectImage2string(String imageFileName, String expected) { var rssExpandedReader = new RSSExpandedReader(); var binaryMap = TestCaseUtil.getBinaryBitmap("test/data/blackbox/rssexpanded-1", imageFileName); var rowNumber = binaryMap.Height / 2; var row = binaryMap.getBlackRow(rowNumber, null); var result = rssExpandedReader.decodeRow(rowNumber, row, null); Assert.IsNotNull(result); Assert.AreEqual(BarcodeFormat.RSS_EXPANDED, result.BarcodeFormat); Assert.AreEqual(expected, result.Text); }
public void testDecodeCheckCharacter() { var rssExpandedReader = new RSSExpandedReader(); var image = TestCaseUtil.readImage("test/data/blackbox/rssexpanded-1", "3.png"); var binaryMap = new BinaryBitmap(new GlobalHistogramBinarizer(new BitmapLuminanceSource(image))); var row = binaryMap.getBlackRow(binaryMap.Height / 2, null); int[] startEnd = { 145, 243 }; //image pixels where the A1 pattern starts (at 124) and ends (at 214) int value = 0; // A var finderPatternA1 = new FinderPattern(value, startEnd, startEnd[0], startEnd[1], image.Height / 2); //{1, 8, 4, 1, 1}; var dataCharacter = rssExpandedReader.decodeDataCharacter(row, finderPatternA1, true, true); Assert.AreEqual(98, dataCharacter.Value); }
public void testFindFinderPatterns() { RSSExpandedReader rssExpandedReader = new RSSExpandedReader(); String path = "test/data/blackbox/rssexpanded-1/2.png"; if (!File.Exists(path)) { // Support running from project root too path = Path.Combine("..\\..\\..\\Source", path); } #if !SILVERLIGHT var image = new Bitmap(Image.FromFile(path)); #else var image = new WriteableBitmap(0, 0); image.SetSource(File.OpenRead(path)); #endif BinaryBitmap binaryMap = new BinaryBitmap(new GlobalHistogramBinarizer(new BitmapLuminanceSource(image))); int rowNumber = binaryMap.Height / 2; BitArray row = binaryMap.getBlackRow(rowNumber, null); List<ExpandedPair> previousPairs = new List<ExpandedPair>(); ExpandedPair pair1 = rssExpandedReader.retrieveNextPair(row, previousPairs, rowNumber); previousPairs.Add(pair1); FinderPattern finderPattern = pair1.FinderPattern; Assert.IsNotNull(finderPattern); Assert.AreEqual(0, finderPattern.Value); ExpandedPair pair2 = rssExpandedReader.retrieveNextPair(row, previousPairs, rowNumber); previousPairs.Add(pair2); finderPattern = pair2.FinderPattern; Assert.IsNotNull(finderPattern); Assert.AreEqual(1, finderPattern.Value); ExpandedPair pair3 = rssExpandedReader.retrieveNextPair(row, previousPairs, rowNumber); previousPairs.Add(pair3); finderPattern = pair3.FinderPattern; Assert.IsNotNull(finderPattern); Assert.AreEqual(1, finderPattern.Value); // the previous was the last pair Assert.IsNull(rssExpandedReader.retrieveNextPair(row, previousPairs, rowNumber)); }
public void testDecodeDataCharacter() { RSSExpandedReader rssExpandedReader = new RSSExpandedReader(); String path = "test/data/blackbox/rssexpanded-1/3.png"; if (!File.Exists(path)) { // Support running from project root too path = Path.Combine("..\\..\\..\\Source", path); } #if !SILVERLIGHT var image = new Bitmap(Image.FromFile(path)); #else var image = new WriteableBitmap(0, 0); image.SetSource(File.OpenRead(path)); #endif BinaryBitmap binaryMap = new BinaryBitmap(new GlobalHistogramBinarizer(new BitmapLuminanceSource(image))); BitArray row = binaryMap.getBlackRow(binaryMap.Height / 2, null); int[] startEnd = { 145, 243 };//image pixels where the A1 pattern starts (at 124) and ends (at 214) int value = 0; // A #if !SILVERLIGHT FinderPattern finderPatternA1 = new FinderPattern(value, startEnd, startEnd[0], startEnd[1], image.Height / 2); #else FinderPattern finderPatternA1 = new FinderPattern(value, startEnd, startEnd[0], startEnd[1], image.PixelHeight / 2); #endif //{1, 8, 4, 1, 1}; DataCharacter dataCharacter = rssExpandedReader.decodeDataCharacter(row, finderPatternA1, true, false); Assert.AreEqual(19, dataCharacter.Value); Assert.AreEqual(1007, dataCharacter.ChecksumPortion); }