public void Run(TestCaseData testCase) { TestImageEncoder imageEncoder = new TestImageEncoder(testCase.ImageData); IBlobSearcher blobSearcher = new SimpleBlobSearcher(imageEncoder); //IBlobDetector blobDetector = new RecursiveBasedDetector( imageEncoder, blobSearcher ); IBlobDetector blobDetector = new ContourTracingDetector(imageEncoder, blobSearcher); Location result = blobDetector.Detect(); int actualReadCount = imageEncoder.PreviousPoints.Count; OutputSearchPath(imageEncoder); Assert.AreEqual(testCase.ExpectedResult.ReadCount, actualReadCount); Assert.AreEqual(testCase.ExpectedResult.EdgeLocation, result); }
private static void OutputSearchPath(TestImageEncoder imageEncoder) { int counter = 1; foreach (var item in imageEncoder.PreviousPoints) { imageEncoder.SetValue(item, counter++); } int imageWidth = imageEncoder.GetImageWidth(); int imageHight = imageEncoder.GetImageHight(); for (int i = 0; i < imageWidth; i++) { for (int j = 0; j < imageHight; j++) { Debug.Write($@" { imageEncoder.GetValue( new Point( i, j ) )},"); } Debug.WriteLine(""); } Debug.WriteLine(""); }