Я недавно работаю с алгоритмами обнаружения лиц, и я хочу добавить несколько фильтров на холст во время работы алгоритмов обнаружения.
Как вы видите на рисунке 1, я создал модал, который работает либо с образцами, либо с пользовательскими фильтрами (Библиотека Caman.js)
Когда выбор сделан, я хочу добавить фильтры на холсте или отменить фильтры. Есть 2 варианта:
1) КНОПКА ПОДТВЕРЖДЕНИЯ:
/* PREPARE ARRAYS */
//SAMPLE FILTERS (vintage = true sunrise = true)
var array1 = [vintage, sunrise, .../* selected values*/ ];
//CUSTOM FILTERS (vintage = 0.4, sunrise = 0.8)
var array2 = [0.4,0.8, .../* selected values*/ ];
2) КНОПКА ОТМЕНЫ:
/* RESETS ARRAYS */
array1.length = 0;
array2.length = 0;
Пока я пытался работать с элементом изображения, который прекрасно работает, но только проверяя все элементы по отдельности. Чем больше фильтров добавлено - тем больше должно быть операторов if / else-if:
if(array1.contains("vintage")){
Caman('#myIcon', function(){
this.vintage().render(); /*.vintage & anyFilter is in Caman.js API */
});
}else if(array1.contains("sunrise")){
//.....etc
}
Мой вопрос:
Есть ли способы, которыми я могу передать строковое значение в определенной библиотеке (Caman.js), поскольку все фильтры являются функциями в библиотеке и что-то .render (), очевидно, не будет работать?
Например:
function apply_Filters (*MY_FILTER_DATA*) {
Caman('#myIcon', function(){
this.*MY_FILTER_DATA*.render();
}