Задать вопрос
  • Методы для поиска объектов на изображениях?

    Vindicar
    @Vindicar
    RTFM!
    почитать подробно про методы

    Хотелось бы понять какой метод, для какой задачи больше походит

    Не, ну ты выбери что-то одно. Или ты въезжаешь в кишки одного метода, или ты ищешь инфу по верхам.

    Навскидку, ключевые вещи на которые нужно смотреть это трудоёмкость, инвариантность и поддержка множественных экземпляров. Первое определяет, насколько сложно подготовить детектор объектов этим методом. Второе определяет, сломается ли метод если искомый объект повернуть/увеличить/ярко осветить/и т.п. Третье определяет, сломается ли метод, если искомый объект присутсвует в нескольких экземплярах.

    Например, методы перебора с голосованием вроде алгоритма Хафа. Хорошо работает для геометрических примитивов, поддерживает несколько экземпляров. Но произвольные трансформации обрабатывает плохо, слишком много вариантов. Для задач вроде "найти кнопку на экране" подходит очень хорошо.

    Каскады Хаара. Требуют контрастных объектов, не справляются с поворотами, могут быть чувствительны к масштабы. Долго обучаются, но довольно быстро работают. Сейчас их редко применяют.

    Методы, основанные на локальных особенностях. Требуют "пёстрых" объектов с множеством заметных деталей (в идеале контрастных углов), и не справляются с деформируемыми объектами или очень разными ракурсами. Легко справляются с произвольными трансформациями, но ломаются на множественных экземплярах. Это придётся обходить, обрабатывая изображение по частям. Зато если объект простой (условно, обложка книги), им обычно хватает одного изображения.

    Свёрточные нейронки вроде семейства YOLO. Можно научить много на что, и скорость работы у них стабильная, но нужна большая размеченная база для обучения. Причём если в базе не было скажем, повёрнутых изображений, нейронка их не научится распознавать. Отчасти обучающую базу можно расширить джиттерингом, но готовить её всё равно придётся, причём речь идёт о сотнях и тысячах изображений.
    Ответ написан
    1 комментарий
  • Как зарегистрировать собственную таксономию ПЕРЕД тем как WooCoommerce регистрирует тип поста «Product»?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    В WooCommerce есть хук woocommerce_register_taxonomy до регистрации всех таксономий

    Есть цикл регистрации атрибутов с хуком

    $attribute_taxonomies = wc_get_attribute_taxonomies();
    
    if ( $attribute_taxonomies ) {
    	foreach ( $attribute_taxonomies as $tax ) {
    		$name = wc_attribute_taxonomy_name( $tax->attribute_name );
    
    		if ( $name ) {
    
    			// ...
    
    			register_taxonomy( $name, apply_filters( "woocommerce_taxonomy_objects_{$name}", array( 'product' ) ), apply_filters( "woocommerce_taxonomy_args_{$name}", $taxonomy_data ) );
    		}
    	}
    }


    Есть хук после регистрации таксономий woocommerce_after_register_taxonomy

    Лучше посмотрите в исходниках как реализовано и делайте по такому же стайл гайду
    Ответ написан
    1 комментарий
  • Как добавить префикс "page/" к стандартным, статическим страницам WP?

    add_action('init', 'custom_prefit_for_pages');
    
    function custom_prefit_for_pages() {
      global $wp_rewrite;
      $wp_rewrite->page_structure = $wp_rewrite->root . 'page/%pagename%'; 
    }


    И не забудьте сохранить постоянные ссылки в настройках.
    Ответ написан
    Комментировать
  • Как привязать footer к низу экрана в Twitter Bootstrap?

    Sergei_Erjemin
    @Sergei_Erjemin
    Улыбайся, будь самураем...
    Блин… что за советы… там есть встроенный класс: navbar-fixed-bottom

    <div class="navbar-fixed-bottom row-fluid">
          <div class="navbar-inner">
              <div class="container">
    
    Ответ написан
    7 комментариев
  • Почему функция-конструктор срабатывает без `new`, хотя, согласно документации, не должна?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    У вас примеры с new и без new не эквивалентны. Вы просто посмотрите, что там на самом деле находится в получаемых переменных:

    function Foo(arg) {
        this.bar = function() {
            return arg;
        };
    
        return this.bar();
    }
    
    const notfoo = Foo('not foo');
    console.log(notfoo); // "not foo", т.е. notfoo - это не новый Foo, это строка текста.
    console.log(notfoo.bar); // undefined, что логично, у стандартной строки никакого bar нет.
    
    const foo = new Foo('foo');
    console.log(foo); // [object Object], т.е. вот это - настоящий новый Foo.
    console.log(foo.bar); // function() { ... }, и метод bar в нем есть.
    console.log(foo.bar()); // "foo"
    Ответ написан
    5 комментариев
  • Дождаться загрузки изображения?

    Negwereth
    @Negwereth
    lvivcss.com.ua
    Я б так как-то делал.
    function loadImageAsync(url) {
      return new Promise((resolve, reject) => {
        const img = new Image();
        img.src = url;
        img.onload = resolve;
      });
    }
    
    Promise.all([
      loadImageAsync("img.jpg"),
      loadImageAsync("img.png")
    ])
      .then(images => {
        //do magic
      });
    Ответ написан
    Комментировать
  • Как называется результат, когда ширину делят на высоту?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Если прямоугольный треугольник - тангенс (хотя там только катеты).
    Если другое - соотношение/пропорция.
    Ответ написан
    2 комментария
  • Async с методами класса не работает?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Сделайте метод static async create(), который выполняет все await'ы и возвращает новый экземпляр класса. Соответственно, вместо bar = new foo() в таком случае будет bar = await foo.create().
    Ответ написан
  • Async с методами класса не работает?

    IvanU7n
    @IvanU7n
    nothing interesting here
    Как заставить работать метод sleep внутри конструктора?

    никак, конструктор ЕМНИП не может быть async
    но можно сделать async метод create и его вызывать в конструкторе, объект при этом понятное дело создастся, а промис от create можно положить в свойство, чтобы можно было его await снаружи
    Ответ написан
    1 комментарий
  • Распрекрасный Rutube и получение объекта видео через «fetch», почему ошибка?

    @maksam07
    Shimpanze,
    Какого его не может получить «fetch»?
    Через браузер вы обращаетесь от домена эндпоинта, от которого хотите получить информацию.
    У рутуба настроена политика CORS. Лучше обратиться к официальной документации, но если не хотите, то пользоваться чем-то подобным:

    const proxyUrl = 'https://api.allorigins.win/get?url=';
    const targetUrl = 'https://rutube.ru/api/video/37daa4e656174d04db06c5fca7548751';
    
    fetch(proxyUrl + encodeURIComponent(targetUrl))
        .then(response => {
            if (!response.ok) {
                throw new Error('Network response was not ok');
            }
            return response.json();
        })
        .then(data => {
            // данные могут быть внутри data.contents
            console.log('Data retrieved:', JSON.parse(data.contents));
        })
        .catch(error => {
            console.error('There was a problem with the fetch operation:', error);
        });
    Ответ написан
    1 комментарий
  • Простой пример «замены» ключа массива через ArrayIterator?

    @Vitsliputsli
    Приведите, пожалуйста, простой пример, как, именно «заменить» ключ (числовой на строковый) в массиве.

    Если не вникая, на кой это нужно, то так:
    unset($array[1]);
    $array['first']=1;


    Для массивов есть итератор foreach и не только, зачем вам ArrayIterator?
    Ответ написан
    2 комментария
  • Простой пример «замены» ключа массива через ArrayIterator?

    @maksam07
    <?php
    $array = [10, 20, 30, 40, 50];
    $arrayIterator = new ArrayIterator($array);
    
    foreach ($arrayIterator as $key => $value) {
        // Преобразование числового ключа в строку и добавление префикса
        $newKey = 'key_' . $key;
        
        // Удаление старого ключа
        $arrayIterator->offsetUnset($key);
        
        // Установка нового ключа с тем же значением
        $arrayIterator->offsetSet($newKey, $value);
    }
    
    // Преобразование итератора обратно в массив
    $newArray = iterator_to_array($arrayIterator);
    
    // Вывод нового массива
    print_r($newArray);
    ?>
    Ответ написан
    7 комментариев
  • Как правильно работать с большим массивом: создавать новый или перезаписывать элементы старого?

    @alexalexes
    Выгоднее всего положить в базу данных, которая специализируется на ключ-значении данных, типа redis или memcached и там делать манипуляции - они на этом специализируются.
    Если с массивом работать напрямую, то выгоднее изменять существующий массив, в изменяющие функции передавать массив по ссылке, следить, чтобы методы при изменении массива не создавали новый массив, а работали с существующим.
    Будут провалы производительности у границ количества элементов кратные степени двойки (ссылка). Это плата за высокоуровневые фишки в виде ресайза массива, чего нет на низком уровне реализации интерпретатора PHP.
    Ответ написан
    5 комментариев
  • Почему не работает правило?

    @dodo512
    на выходе получается url с конечным слешем.

    /15/ это существующий каталог и mod_dir добавляет завершающий слеш.
    Чтобы отключить это нужно добавить DirectorySlash off
    В файл /15/.htaccess или /.htaccess
    Ответ написан
    1 комментарий
  • PHP: Почему 'mb_convert_encoding' не конвертирует простую строку?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    - var_dump( $str );
    + echo bin2hex($str);
    Получаем cf f0 e8 e2 e5 f2 20 32 30 31 39 20 cc e8 f0 21
    Открываем таблицу cp1251 и смотрим
    cf - П, f0 - р, e8 - и, e2 - в, e5 - е, f2 - т, 20 - пробел, 32 - 2, 30 - 0, 31 - 1, 39 - 9, 20 - пробел, cc - М, e8 - и, f0 - р, 21 - !
    Привет 2019 Мир!
    Всё вполне сконвертировалось.
    Ответ написан
    Комментировать
  • PHP opendir() не отображает папки на кириллице?

    @khomaldi
    разбираюсь потихоньку
    Понимаю, что вопрос задан более трёх лет назад, но ответа до сих пор нет.
    У вас ошибка в функции iconv, нужно поменять местами кодировки.
    Неверно: iconv('utf-8', 'Windows-1252', string)

    Правильно: iconv('Windows-1251', 'UTF-8', string)
    Ответ написан
    Комментировать
  • JS: Как в родительском классе, вызвать метод из дочернего?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Создать объект дочернего класса:
    class parentClass {
      constructor() {
        this.extendMethod();
      }
      extendMethod() { }
    }
    
    class extendClass extends parentClass {
      extendMethod() {
        console.log('Hi');
      }
    }
    
    new extendClass();


    Передать дочерний элемент в родительский:
    class parentClass {
      constructor(child = null) {
        child?.extendMethod();
      }
    }
    
    class extendClass extends parentClass {
      extendMethod() {
        console.log('Hi');
      }
    }
    
    new parentClass(new extendClass());


    Создать интерфейс (базовый класс) и оба класса унаследовать от него:
    class IBase {
      constructor() {
        this.extendMethod();
      }
      extendMethod() { }
    }
    
    class A extends IBase {
      extendMethod() {
        console.log('Hi from A');
      }
    }
    class B extends IBase {
      extendMethod() {
        console.log('Hi from B');
      }
    }
    Ответ написан
    4 комментария
  • Что означает проверка $_GET['debug_updates']?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Если свойство debug_updates отсутсвует в ассоциативном массиве $_GET.

    Если совсем простым языком, то - если параметр debug_updates не установлен в url, то выполнить следующий блок кода.
    Ответ написан
    Комментировать
  • Как преобразовать к строке число "0xFF"?

    Alexandroppolus
    @Alexandroppolus
    кодир
    `0x${value.toString(16).toUpperCase()}`
    Ответ написан
    2 комментария
  • Что означает ошибка PHP unexpected T_STRING?

    He11ion
    @He11ion
    PHP-monkey
    " . time() . " а не . " time() " .
    Ответ написан
    Комментировать