Страница 6 из 6 ПерваяПервая ... 456
Показано с 51 по 52 из 52

Тема: Как это реализовать??

  1. #51

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    почему не подходит, он таки как раз пока выигрывает по объему реализации. Может я не знаю о каких то еще вариантах, вот и спрашиваю
    Цикл FOR наше всё.

    Разумеется, тут может "напрягать", что ради вычисления каждой точки нужно целую матрицу обойти и сложить коэффициенты.
    Но в случае небольших фильтров это не проблема.
    Для ускорения используют преобразование Фурье и свёртку: https://habr.com/post/265781/

  2. #52
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    вот такой код получился
    Код:
    System.out.println("getConvolution");
    int[] stuff = {7, 6, 5, 5, 6, 7, 6, 4, 3, 3, 4, 6, 5, 3, 2, 2, 3, 5, 5, 3, 2, 2, 3, 5, 6, 4, 3, 3, 4, 6, 7, 6, 5, 5, 6, 7};
    int w = 6;
    int h = 6;
    int k = 0;
    result = new int[w * h];
    int count = 0;
            for (int i = 0; i < stuff.length; i++) {
                if ( (i / w) == 0) {                        // первый ряд матрицы
                    if ((i % w) == 0 || (i % w) == (w-1)) { // первая и последняя колонка
                        k = stuff[i] * 3;                   // сложили уголок
                        k += stuff[i + ((i % w) == 0?1:-1)] * -1;
                        k += stuff[i + w] * -1;
                        result[count] = k;
                        count++;
                    } else {
                        k = stuff[i] * 4;
                        k += stuff[i - 1] * -1;
                        k += stuff[i + 1] * -1;
                        k += stuff[i + w] * -1;
                        result[count] = k;
                        count++;
                    }
                } else if ( (i / (w * (h-1))) > 0) {
                    if ((i % w) == 0 || (i % w) == (w-1)) {
                        k = stuff[i] * 3;                  
                        k += stuff[i + ((i % w) == 0?1:-1)] * -1;
                        k += stuff[i - w] * -1;
                        result[count] = k;
                        count++;
                    } else {
                        k = stuff[i] * 4;
                        k += stuff[i - 1] * -1;
                        k += stuff[i + 1] * -1;
                        k += stuff[i - w] * -1;
                        result[count] = k;
                        count++;
                    }
                } else {
                    if ((i % w) == 0 || (i % w) == (w-1)) {
                        k = stuff[i] * 4;
                        k += stuff[i + ((i % w) == 0?1:-1)] * -1;
                        k += stuff[i + w] * -1;
                        k += stuff[i - w] * -1;
                        result[count] = k;
                        count++;
                    } else {
                        k = stuff[i] * 5;
                        k += stuff[i - 1] * -1;
                        k += stuff[i + 1] * -1;
                        k += stuff[i - w] * -1;
                        k += stuff[i + w] * -1;
                        result[count] = k;
                        count++;
                    }
                }
    System.out.println(Arrays.toString(result));
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 6 из 6 ПерваяПервая ... 456

Похожие темы

  1. На чем лучше реализовать теплопункт?
    от КСИ в разделе Эксплуатация
    Ответов: 4
    Последнее сообщение: 31.03.2016, 09:20
  2. Как реализовать?
    от spinogryz57 в разделе Трёп (Курилка)
    Ответов: 42
    Последнее сообщение: 04.03.2015, 13:07
  3. Как программно реализовать это?
    от lava_02 в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 04.02.2012, 22:54
  4. Как реализовать ?!!
    от Vukkub в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 23.08.2011, 09:46
  5. как реализовать сигнализацию
    от fuzzy_l в разделе Подбор Оборудования
    Ответов: 1
    Последнее сообщение: 25.03.2010, 12:29

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •