Robinson's edge detector is a variation of Kirsch's detector using different convolution masks. Both are examples of compass convolution filters.
public void ProcessImageTest() { double[,] diag = Matrix.Magic(5); Bitmap input; new MatrixToImage().Convert(diag, out input); // Create a new Gabor filter RobinsonEdgeDetector filter = new RobinsonEdgeDetector(); // Apply the filter Bitmap output = filter.Apply(input); double[,] actual; new ImageToMatrix().Convert(output, out actual); string str = actual.ToString(CSharpMatrixFormatProvider.InvariantCulture); double[,] expected = { { 0.945098039215686, 1, 0.976470588235294, 0.984313725490196, 0.964705882352941 }, { 0.996078431372549, 0.164705882352941, 0.0705882352941176, 0.247058823529412, 0.972549019607843 }, { 0.980392156862745, 0.0509803921568627, 0.227450980392157, 0.0509803921568627, 0.937254901960784 }, { 0.980392156862745, 0.247058823529412, 0.0705882352941176, 0.164705882352941, 0.988235294117647 }, { 0.96078431372549, 0.980392156862745, 0.945098039215686, 0.988235294117647, 0.968627450980392 } }; Assert.IsTrue(expected.IsEqual(actual, 1e-6)); }
public void ApplyTest1() { Bitmap image = Properties.Resources.lena512; RobinsonEdgeDetector robinson = new RobinsonEdgeDetector(); Bitmap edges = robinson.Apply(image); // ImageBox.Show(edges); Assert.IsNotNull(edges); }
public void ColorApplyTest1() { Bitmap image = Accord.Imaging.Image.Clone(Properties.Resources.lena_color); RobinsonEdgeDetector robinson = new RobinsonEdgeDetector(); Bitmap edges = robinson.Apply(image); // ImageBox.Show(edges); Assert.IsNotNull(edges); }
private void SetFilter() { ImageType = ImageTypes.Rgb24bpp; Af.RobinsonEdgeDetector newFilter = new Af.RobinsonEdgeDetector(); imageFilter = newFilter; }