AcoustID.Chromaprint.ChromaFilter.Consume C# (CSharp) Метод

Consume() публичный Метод

public Consume ( double features ) : void
features double
Результат void
        public void Consume(double[] features)
        {
            m_buffer[m_buffer_offset] = features;
            m_buffer_offset = (m_buffer_offset + 1) % 8;
            if (m_buffer_size >= m_length)
            {
                int offset = (m_buffer_offset + 8 - m_length) % 8;

                for (int i = 0; i < m_result.Length; i++)
                {
                    m_result[i] = 0.0;
                }
                //fill(m_result.begin(), m_result.end(), 0.0);
                for (int i = 0; i < 12; i++)
                {
                    for (int j = 0; j < m_length; j++)
                    {
                        m_result[i] += m_buffer[(offset + j) % 8][i] * m_coefficients[j];
                    }
                }
                m_consumer.Consume(m_result);
            }
            else
            {
                m_buffer_size++;
            }
        }
    }

Usage Example

Пример #1
0
 public void TestDiff()
 {
     double[] coefficients = { 1.0, -1.0 };
     Image image = new Image(12);
     ImageBuilder builder = new ImageBuilder(image);
     ChromaFilter filter = new ChromaFilter(coefficients, builder);
     double[] d1 = { 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
     double[] d2 = { 1.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
     double[] d3 = { 2.0, 7.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
     filter.Consume(d1);
     filter.Consume(d2);
     filter.Consume(d3);
     Assert.AreEqual(2, image.Rows);
     Assert.AreEqual(-1.0, image.Get(0, 0));
     Assert.AreEqual(-1.0, image.Get(1, 0));
     Assert.AreEqual(-1.0, image.Get(0, 1));
     Assert.AreEqual(-1.0, image.Get(1, 1));
 }
All Usage Examples Of AcoustID.Chromaprint.ChromaFilter::Consume