/accord-net-extensions

Advanced image processing and computer vision algorithms made as fluent extensions and built for portability

Primary LanguageC#

Accord.NET Extensions logo

NuGet packages version

 <a href="https://github.com/dajuric/accord-net-extensions/raw/master/Deployment/Documentation/Help/Accord.NET%20Extensions%20Documentation.chm"> 
 <img src="https://img.shields.io/badge/Help-download-yellow.svg?style=flat-square" alt="Help"/>  </a>

Accord.NET Extensions is an extension framework for Accord.NET and AForge.NET. The framework sets focus on .NET native array as primary imaging object and offers computer-vision algorithms mostly build as extensions. The libraries can be grouped as following:

Image processing

  • Accord.Extensions.Imaging.Algorithms package
    Implements image processing algorithms as .NET array extensions including the Accord.NET algorithms.

    Algorithms sample
  • <li>
        <p>
            <b>
                <a href="https://www.nuget.org/packages/Accord.Extensions.Imaging.Algorithms.LINE2D/">Accord.Extensions.Imaging.Algorithms.LINE2D package</a>
            </b>
            <br />
            Implements template matching algorithm (~20x faster than conventional sliding window approach).
        </p>
        <p>
            <b>Tutorials:</b> <a href="http://www.codeproject.com/Articles/826377/Rapid-Object-Detection-in-Csharp" target="_blank">Fast template matching</a>
        </p>
    
        <table border="0" cellpadding="1" cellspacing="1">
            <tbody>
                <tr>
                    <td align="center" width="100%">
                        <a href="https://www.youtube.com/watch?v=B4-IR8ySrSs" target="_blank">
                            <img alt="Fast template matching" src="./Deployment/README-resources/FastTemplateMatching.jpg" width="250" />
                        </a>
                    </td>
                </tr>
            </tbody>
        </table>
    </li>
    
    <li>
        <p>
            <b>
                <a href="https://www.nuget.org/packages/Accord.Extensions.Vision/">Accord.Extensions.Vision package</a>
            </b>
            <br />
            Pyramidal KLT tracker, Camshift, Meanshift
        </p>
        <p>
            <b>Tutorials:</b>
            <a href="http://www.codeproject.com/Articles/840823/Object-Feature-Tracking-in-Csharp" target="_blank">Object Feature Tracking</a>
        </p>
    
        <table border="0" cellpadding="1" cellspacing="1">
            <tbody>
                <tr>
                    <td align="center" width="50%">
                        <a href="https://www.youtube.com/watch?v=6B_PNDCWtz4" target="_blank">
                            <img alt="KLT Optical flow" src="./Deployment/README-resources/KLTOpticalFlow.jpg" width="250">
                        </a>
                    </td>
                    <td align="center" width="50%">
                        <a href="https://www.youtube.com/watch?v=C-ivmaUHaP4" target="_blank">
                            <img alt="Camshift tracker" src="./Deployment/README-resources/CamshiftTracker.jpg" width="250">
                        </a>
                    </td>
                </tr>
            </tbody>
        </table>
    </li>
    

Math libraries

  • Accord.Extensions.Math package
    Fluent matrix extensions. Geometry and graph structures and extensions.

  • <li>
        <p>
            <b>
                <a href="https://www.nuget.org/packages/Accord.Extensions.Statistics/">Accord.Extensions.Statistics package</a>
            </b>
            <br />
            Object tracking algorithms: Kalman filter, particle filter, Joint Probability Data Association Filter (JPDAF).
            <br />
        </p>
        <p>
            <b>Tutorials:</b> <a href="http://www.codeproject.com/Articles/865935/Object-Tracking-Kalman-Filter-with-Ease" target="_blank">Kalman filter</a>,
            <a href="http://www.codeproject.com/Articles/865934/Object-Tracking-Particle-filter-with-ease" target="_blank">Particle filter</a>
        </p>
    
        <table border="0" cellpadding="1" cellspacing="1">
            <tbody>
                <tr>
                    <td align="center" width="50%">
                        <a href="https://www.youtube.com/watch?v=LSoJXCQIAvQ" target="_blank">
                            <img alt="Kalman Filter 2D" src="./Deployment/README-resources/KalmanFiler2D.jpg" width="250">
                        </a>
                    </td>
                    <td align="center" width="50%">
                        <a href="https://www.youtube.com/watch?v=p9FXMf_HRw0" target="_blank">
                            <img alt="Kalman Filter Tracking" src="./Deployment/README-resources/KalmanFilterTracking.jpg" width="250">
                        </a>
                    </td>
                </tr>
    
                <tr>
                    <td align="center" width="50%">
                        <a href="https://www.youtube.com/watch?v=SV6CmEha51k" target="_blank">
                            <img alt="Particle filter color tracking" src="./Deployment/README-resources/ParticleFilterColorTracking.jpg" width="250">
                        </a>
                    </td>
                    <td align="center" width="50%">
                        <a href="https://www.youtube.com/watch?v=5VWtoimnlto" target="_blank">
                            <img alt="Particle filter template matching" src="./Deployment/README-resources/ParticleFilterTemplateMatching.jpg" width="250">
                        </a>
                    </td>
                </tr>
            </tbody>
        </table>
    
    </li>
    

Support libraries

  • Accord.Extensions.Imaging.AForgeInterop package
    Interoperability extensions between .NET array and AForge's UnmanagedImage.

  • <li>
        <p>
            <b>
                <a href="https://www.nuget.org/packages/Accord.Extensions.Core">Accord.Extensions.Core package</a>
            </b>
            <br />
            Element caching, parallel extensions, shared structures.
        </p>
    </li>
    

Getting started

Browse through some included samples, install NuGet packages and enjoy!
Take a look at:

  • DotImaging - a portable imaging library - the foundation of Accord.NET Extensions
  • MoreCollections - a set of portable collections installable as source files via NuGet.

How to Engage, Contribute and Provide Feedback

The best ways to contribute and provide feedback is to try things out, file bugs and propose enhancements. Your opinion is important and will define the future roadmap. If you have any questions, comments or you would like to propose an enhancement please leave the message on Github, or write to: darko.juric2 [at] gmail.com.

Final word

If you like the project please star it in order to help to spread the word. That way you will make the framework more significant and in the same time you will motivate me to improve it, so the benefit is mutual.