Robinson's Edge Detector

Robinson's edge detector is a variation of Kirsch's detector using different convolution masks. Both are examples of compass convolution filters.

Inheritance: BaseFilter
        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);
        }
Example #4
0
 private void SetFilter()
 {
     ImageType = ImageTypes.Rgb24bpp;
     Af.RobinsonEdgeDetector newFilter = new Af.RobinsonEdgeDetector();
     imageFilter = newFilter;
 }