С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для Kill100
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
.NET 4.x

Аналог Java функции PixelGrabber в C#

05.01.2014, 23:00. Показов 1247. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Читаю статью http://habrahabr.ru/post/74865/ и попутно переписываю код с java на C#.
но все хорошо пока не наткнулся на PixelGrabber. Вычитал что она каким то образом преобразует картинку в массив но нечего не понял.
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
public void teach(String path, int n)
    {
        
        class JPGFilter implements FilenameFilter {
            public boolean accept(File dir, String name) {
                return (name.endsWith(".jpg"));
            }
        }     
 
        // загрузка всех тестовых изображений в массив img[]
        String[] list = new File(path + "/").list(new JPGFilter());
        Image[] img = new Image[list.length];        
        MediaTracker mediaTracker = new MediaTracker(new Container());        
        int i = 0;
        for (String s: list) {
            img[i] = java.awt.Toolkit.getDefaultToolkit().createImage(path + "/" + s);
 
            mediaTracker.addImage(img[i], 0);
            try {
                mediaTracker.waitForAll();
            } catch (InterruptedException ex) {
                Logger.getLogger(Teacher.class.getName()).log(Level.SEVERE, null, ex);
            }
 
            i++;
        }
 
        // инициализация начальных весов
        perceptron.initWeights();
 
        // получение пиксельных массивов каждого изображения
        // и обучение n раз каждой выборке
        PixelGrabber pg;
        int[] pixels, x, y;
        int w, h, k = 0;
        while (n-- > 0) {
            for (int j = 0; j < img.length; j++) {
                w = img[j].getWidth(null);
                h = img[j].getHeight(null);
 
                if (w*h > perceptron.getM()) continue;
 
                pixels = new int[w*h];
                pg = new PixelGrabber(img[j], 0, 0, w, h, pixels, 0, w);
                try {
                    pg.grabPixels();
                } catch (InterruptedException ex) {
                    Logger.getLogger(Teacher.class.getName()).log(Level.SEVERE, null, ex);
                }
 
                // получение векторов и обучение перцептрона
                x = getInVector(pixels);
                y = getOutVector(Integer.parseInt(String.valueOf(list[j].charAt(0))));
                perceptron.teach(x, y);
            }
        }
    }

ТО что я написал на C# но с затыком как раз на этом PixelGrabber
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 /// <summary>
        ///  Обучение перцептрона
        /// </summary>
        /// <param name="path">Директория для сканирования</param>
        /// <param name="n">количество циклов обучения</param>
        public void Teach(String path, int n)
        {
            // загрузка всех тестовых изображений в массив bitmaps[]
            var list = Directory.GetFiles(path, "*.jpg");
            var bitmaps = new Bitmap[list.GetLength(0)];
            var i = 0;
            foreach (var s in list)
            {
                bitmaps[i] = new Bitmap(s);
                i++;
            }
            // инициализация начальных весов
            _perceptron.InitWeights();
 
            // получение пиксельных массивов каждого изображения
            // и обучение n раз каждой выборке
            PixelGrabber pg;
            while (n-- > 0)
            {
                for (var j = 0; j < bitmaps.GetLength(0); j++)
                {
                    var width = bitmaps[j].Width;
                    var height = bitmaps[j].Height;
                    if (width * height > _perceptron.GetM) continue;
                    var pixels = new Int32[width * height];
                    pg = new PixelGrabber(bitmaps[j], 0, 0, width, height, pixels, 0, width);
                    try
                    {
                        pg.grabPixels();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
 
                    // получение векторов и обучение перцептрона
                    var x = getInVector(pixels);
                    var y = GetOutVector(Convert.ToInt32(list[j]));
                    _perceptron.Teach(x, y);
                }
            }
        }
Полностью проект в Аттаче.
Плз помогите
Вложения
Тип файла: 7z Neuro.7z (33.4 Кб, 8 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.01.2014, 23:00
Ответы с готовыми решениями:

Java аналог функции file_get_contents() (PHP)
На PHP часто приходилось применять функцию file_get_contents() которая помещала, например участок HTML страницы в переменную-буфер. Затем...

Аналог PHP функции unpack в Java
Здравствуйте!Подскажите, пожалуйста ,есть ли в Java какой-либо аналог функции unpack (по шаблону &quot;f3&quot;) из php? Если не...

Аналог MoveNext на Java. Перевод программы с C# на Java
Написала программу на C#. Перевожу ее на Java. Проблема возникла в переводе нижеследующего куска программы. В связи с крайне слабым знанием...

1
 Аватар для Kill100
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
06.01.2014, 02:49  [ТС]
Всё сам разобрался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.01.2014, 02:49
Помогаю со студенческими работами здесь

PixelGrabber
прога использует PixelGrabber для сканирования пикселей: int pixels=new int; PixelGrabber grabber= new...

PixelGrabber - вывести гистограмму изображения
Ребят, помогите пожалуйста. Надо чтобы программа прошлась по любой строчке картинки по ширине. Каждый пиксель. И в итоге вывела...

Аналог из Java в С++
В наличии два класса:Dog и его наследник Shepherd. Метод guard() принадлежит Shepherd , с Dog он не вызывается, но при данном вызове...

Аналог java RuleBasedCollator
Доброго дня. Есть java код public String Normalize(String name) { RuleBasedCollator collator =...

Аналог указателей из C++ в Java
Изучаю многим небезызвестную &quot;Паттерны проектирования&quot;. Там, как мы все знаем все примеры на C++. Есть там такой код: Mapsite* GetSide...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru