дорбаотка медианного фильтра: добавлено инициализирующее значение. чтобы не считал с нуля
This commit is contained in:
@@ -32,11 +32,14 @@ static int Filter_float_compare(const void *a, const void *b) {
|
||||
* @param filter Указатель на структуру фильтра
|
||||
* @return 0 - успех, -1 - ошибка
|
||||
*/
|
||||
int FilterMedian_Init(FilterMedian_t* filter, uint8_t size) {
|
||||
int FilterMedian_Init(FilterMedian_t* filter, uint8_t size, float init_val) {
|
||||
check_init_filter(filter);
|
||||
if (size == 0 || size > FILTER_MEDIAN_MAX_SIZE) return -1;
|
||||
|
||||
memset(filter->buffer, 0, sizeof(filter->buffer));
|
||||
for (int i = 0; i < size; i++)
|
||||
{
|
||||
filter->buffer[i] = init_val;
|
||||
}
|
||||
filter->index = 0;
|
||||
filter->size = size;
|
||||
|
||||
@@ -301,11 +304,15 @@ static int Filter_int32_compare(const void *a, const void *b) {
|
||||
* @param filter Указатель на структуру фильтра
|
||||
* @return 0 - успех, -1 - ошибка
|
||||
*/
|
||||
int FilterMedianInt_Init(FilterMedianInt_t* filter, uint8_t size) {
|
||||
int FilterMedianInt_Init(FilterMedianInt_t* filter, uint8_t size, int32_t init_val) {
|
||||
check_init_filter(filter);
|
||||
if (size == 0 || size > FILTER_MEDIAN_MAX_SIZE) return -1;
|
||||
|
||||
memset(filter->buffer, 0, sizeof(filter->buffer));
|
||||
for (int i = 0; i < size; i++)
|
||||
{
|
||||
filter->buffer[i] = init_val;
|
||||
}
|
||||
|
||||
filter->index = 0;
|
||||
filter->size = size;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user