Форум Игромании
 
Регистрация
Справка

Программирование Создание, разработка и доработка различных игр и программного обеспечения

Ответ
 
Опции темы
Старый 13.08.2011, 07:36   #41
Игрок
 
Аватар для Pharaon
 
Регистрация: 14.06.2006
Адрес: Future
Сообщений: 675
Репутация: 154 [+/-]
Скажу так, мне просто необходимо это сделать. Не важно что и как, но чтобы код работал на шарпе. Есть винАпи функции? Какие?

Ладно, отключение карты уже не так важно, пусть немного коряво так, но через утилиту от микрософта работает.

Вся проблема в обновлении айпишника, причем не просто в обновлении, а именно аналоге конпки исправить в состоянии сетевого подключения. Любой способ, хотя бы наведите на путь истинный, скока не искал н емогу найти, гугл на меня в обиде)
__________________
Understanding is impossible...
Η κατανόηση είναι αδύνατο
理解することは不可能である
समझना असंभव है

Mr. Freeman +1

[url=https://deepbit.net][img]https://deepbit.net/userbar/4f1ea27f06917288bf000000_375ff6ce34.png[/img][/url]
Pharaon вне форума  
Отправить сообщение для Pharaon с помощью ICQ Отправить сообщение для Pharaon с помощью Skype™ Ответить с цитированием
Старый 12.09.2011, 20:20   #42
Юзер
 
Аватар для Th0R(D0)NaR
 
Регистрация: 19.02.2007
Сообщений: 436
Репутация: 186 [+/-]
помогите написать проги
Скрытый текст:
Использовать перечислимый тип для хранения названий дней недели (месяцев, названий организационно-правовых форм предприятий и т.п.) с последующей печатью на экране значений созданного перечислимого типа.
вариант перечислений: Виды печатных изданий (книга, журнал, газета и т.п.)

Скрытый текст:
Разработать структуру, описывающую координаты и другие требуемые параметры квадрата с расчётом его площади.

Скрытый текст:
Разработать консольное приложение, позволяющее одному пользователю загадывать число в заданном диапазоне, а другому отгадывать это число, вводя произвольные числа с последующим указанием того, больше это число загаданного или нет.
Th0R(D0)NaR вне форума  
Отправить сообщение для Th0R(D0)NaR с помощью ICQ Ответить с цитированием
Старый 12.09.2011, 23:03   #43
Гейммастер
 
Аватар для Mad-Dan
 
Регистрация: 07.06.2005
Адрес: unknow
Сообщений: 8,967
Репутация: 623 [+/-]
Th0R(D0)NaR,
совсем лень думать?
примитивные же проги.
учебный год похоже начался.
__________________
Бывший Dart Luke

Мечтаю быть модером и всех банить.... Но ведь не дадут (((((

"cъел еретика-спас дерево,"- оголодавший космодесант
Mad-Dan вне форума  
Ответить с цитированием
Старый 19.10.2011, 19:29   #44
Юзер
 
Регистрация: 08.09.2007
Сообщений: 271
Репутация: 61 [+/-]
Есть задание: нужно определить площадь на выбранном отрезке под заданной кривой методом численного интегрирования.
Программа должна обеспечить ввод с клавиатуры уравнений функций и нахождение значения площади под полученной кривой.

И есть загвоздка, как обеспечить с клавиатуры ввод уравнений функций, программа создается через Windows Forms, т.е. там нужно реализовать эту функцию...
__________________
"Надежда умирает последней", - сказала Вера и застрелила Любовь...
Arantar вне форума  
Ответить с цитированием
Старый 19.10.2011, 20:14   #45
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 7,637
Репутация скрыта [+/-]
Arantar, нужно реализовать лексический и синтаксический анализаторы, осуществляющие разбор грамматики математических выражений (и саму грамматику под нужную схему подогнать). Грамматика мат. выражений проста, её хоть грамматикой простого предшествования можно представить, а для таких грамматик есть простой и эффективный алгоритм разбора. В общем-то, задача сугубо техническая и требует освоения методов синтаксического анализа (лексический тут элементарен).
Возможно, в C# даже есть соответствующие компоненты, но я этим не занимался и потому не знаю...
Ну а если лень делать, то можно предписать вбивать функцию в префиксной или постфиксной формах. Тут вообще мудрить с разбором не придётся, до того всё просто.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием
Старый 20.10.2011, 08:55   #46
Юзер
 
Регистрация: 08.09.2007
Сообщений: 271
Репутация: 61 [+/-]
Хотелось бы примерчик небольшой увидеть этого, если не трудно...
__________________
"Надежда умирает последней", - сказала Вера и застрелила Любовь...
Arantar вне форума  
Ответить с цитированием
Старый 20.10.2011, 09:16   #47
Юзер
 
Аватар для CMETAHA

 
Регистрация: 24.06.2008
Адрес: Я тут
Сообщений: 472
Репутация: 172 [+/-]
Arantar, Вот: Парсер математических выражений, через регексы, много разных примеров
__________________
"Хуже вопроса не в той теме, может быть только вопрос, о вопросе не в той теме." © *@ndrey*

Контактик Щебет Лицокнижка Спроси меня Гплюс
CMETAHA вне форума  
Отправить сообщение для CMETAHA с помощью ICQ Ответить с цитированием
Старый 20.10.2011, 09:26   #48
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 7,637
Репутация скрыта [+/-]
Arantar, учите матчасть.
Для разбора математических выражений я в своё время использовал следующую грамматику (привожу её в формате моей программы для построения матрицы предшествования, там из названия разделов ясно, где что):
Скрытый текст:
>TERMINAL<
var
const
+
-
*
/
rt
^
log
func
(
)

>NOT_TERMINAL<
ВЫР
ПВЫР
ПР1
ПР1а
ПР2
ПР2а
ПР3
ПР3а
ПР4
ПР4а
ПР5
ПР5а
ПЕРЕМ
КОНСТ
СКОБ

>START<
ВЫР

>RULES<
ВЫР -> ПВЫР
ПВЫР -> ПР1
+ ПР1
- ПР1
ПВЫР + ПР1
ПВЫР - ПР1
ПР1 -> ПР1а
ПР1а -> ПР2
ПР1а * ПР2
ПР1а / ПР2
ПР2 -> ПР2а
ПР2а -> ПР3
ПР2а ^ ПР3
ПР2а rt ПР3
ПР3 -> ПР3а
ПР3а -> ПР4
ПР3а log ПР4
ПР4 -> ПР4а
ПР4а -> ПР5
func ПР5
ПР4а func ПР5
ПР5 -> ПР5а
ПР5а -> ПЕРЕМ
КОНСТ
СКОБ ВЫР )
СКОБ -> (
ПЕРЕМ -> var
КОНСТ -> const

>END<
Она является грамматикой простого предшествоания, а нетерминалы ПР<число> разграничивают операторы по приоритетам, чем выше приоритет - тем выше число. То есть легко свои операторы добавить. Все функции задаются терминалом func, ну а какая именно функция - это уже лексический анализ (правда, поскольку тут речь идёт об элементарной математике, то функции могут быть только от одной переменной - т.е. имеются в виду синусы, косинусы и так далее). var и const - терминалы для переменной и константы соответственно. rt и log - для операция корня и логарифма, которые я решил в рамках грамматики реализовать операторами, т.к. там по сути две переменные должны быть.

Что же касается префиксной/постфиксных записей - то это в Википедию по ссылкам.

Теперь что касается "примерчика". Вообще-то у меня есть программа для построения по грамматике матрицы предшествования и последующей генерации выходного файлы с полным описанием и грамматики, и матрицы. А также программа, генерирующая по этому файлу код на C++ с синтаксическим анализатором. Но Вы едва ли во всём этом разберётесь, так что читайте теорию. Ну или если лень, используйте постфикс/префикс. Там, повторяюсь, всё элементарно. Знак перед/после операндов, никаких скобок. Читай себе символы и определяй, что это. Кстати, и для инфиксной формы (сиречь обычная форма записи, когда оператор стоит между операндов) можно не заморачиваться с грамматикой. Используйте стек, и всё (в грамматике простого предшествования он, собственно, и используется). Я использовал грамматику, дабы была возможность её расширения.

Ну да, или используйте готовую библиотеку, ссылку на которую кинул CMETAHA. Но вообще-то, знать основы построения трансляторов не помешает.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)

Последний раз редактировалось pokibor; 20.10.2011 в 09:29.
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием
Старый 04.11.2011, 15:03   #49
Опытный игрок
 
Аватар для OverDoser
 
Регистрация: 08.09.2006
Адрес: столица России - Москва
Сообщений: 1,411
Репутация: 130 [+/-]
Знания в c# далеки от хороших, поэтому задаю вопрос:
Собственно задача у меня такова:найти объект на изображении с помощью образца(второе изображение).
Сейчас я использую примитивный алгоритм(знаю, что есть проще намного-но хочу сделать именно с таким).Идет сравнение каждого пикселя с пикселями на образце(GetPixel).
Далее,для отметки совпадения, создается третье изображения с размерами, как у первого изображения и полностью черного цвета.И в случае совпадения, пиксель на третьем изображении с координатами, как у совпавшего пикселя на первом, красится в белый цвет(SetPixel).
Далее идет обработка третьего изображения, по свойствам образца определяем нужный нам объект и обводим этот объект на первом.Но это здесь не важно.

суть такова, что сравнение объектов идет 5<x<10 минут, и меня это НЕ УСТРАИВАЕТ.
Понятное дело, что операций перебор идет более 100млн пикселей, и наверняка замедляет процесс именно GetPixel.

Вопрос у меня такой:
1)Чем можно заменить GetPixel для ускорения программы
2)Какое доп условие можно добавить, чтобы снизить во много раз кол-во сравнений.(ну там допустим средний цвет области.Если близко к среднему цвету образца, то сравниваем.Если далек, то оставляем)
Скрытый текст:
Bitmap one = new Bitmap(@label1.Text);
Bitmap two = new Bitmap(@label3.Text);
Bitmap thr = new Bitmap(@label1.Text);
for (int h = 0; h <= thr.Height-1; h++)//Делаем 3 изображение черным
for (int g = 0; g <= thr.Width-1; g++)
thr.SetPixel(g, h, Color.Black);



for (int q = 0; q <= one.Width-two.Width-1; q++)
for (int z = 0; z <= one.Height - two.Height - 1; z++)//Перебираем
//координаты на 1 изображении
{ bool b = true;//Буль для выхода в случае нахождения совпадения

for (int f = 0; (f <= two.Width - 1)&&(b=true); f++)
for (int s = 0; (s <= two.Height - 1)&&(b=true); s++)//Координаты
//образца
{
if (one.GetPixel(q, z) == two.GetPixel(f, s))

{ thr.SetPixel(q, z, Color.White);//Красим в белый
b=false;}

;
}
}
OverDoser вне форума  
Отправить сообщение для OverDoser с помощью ICQ Ответить с цитированием
Старый 04.11.2011, 15:29   #50
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 7,637
Репутация скрыта [+/-]
OverDoser, это область искусственного интеллекта - раз. Но об этом пока говорить рано, чувствую.
Далее, сравнивать по цветам пикселей - заведомо не лучшая идея. Большинство алгоритмов сжатия изображения с потерями, т.е. алгоритмов, которые отбрасывают "слабоощутимую" информацию, осуществляют преобразование изображения в цветовую модель YUV. Вообще, если речь идёт об ускорении работы алгоритма со сравнением, то я бы порекомендовал именно изучить алгоритмы сжатия изображения и сравнивать результирующие коэффициенты уже после сжатия. Обратите особое внимание на вейвлеты - полагаю, именно результаты вейвлет-преобразования Вам подойдут особенно хорошо, поскольку представляют собой уменьшенные копии рисунка. Соответственно, сравниваем грубую часть вейвлет-разложения, если сходится - то можно сравнивать более тонкие коэффициенты.

Итог: если не хотите связываться с искусственным интеллектом (хотя обращение к нему не альтернатива, а дополнение алгоритма, на самом деле), используйте методы сжатие изображения с потерями и сравнивайте их результат. Такие методы строятся на математических функциях и сколь угодно точно могут представлять исходное изображение, выделяя так или иначе "грубые" коэффициенты и "более точные" - чисто исходя из своего предназначения. Как отмечалось выше, из всех методов сжатия мне кажется лучшим применение вейвлетов в силу построения уменьшенных копий исходного изображения, а не малопонятных матриц коэффициентов.

P.S. Рекомендую книгу "Фракталы и вейвлеты для сжатия изображений в действии", С. Уэлстид.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)

Последний раз редактировалось pokibor; 04.11.2011 в 16:02.
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием
Старый 04.11.2011, 17:06   #51
Опытный игрок
 
Аватар для OverDoser
 
Регистрация: 08.09.2006
Адрес: столица России - Москва
Сообщений: 1,411
Репутация: 130 [+/-]
pokibor, То есть я правильно вас понял:
Выделяю на 1 изображении область,равную 2 изображению. Произвожу вейвлет преобразование этой области и 2 рисунка. Оцениваю коэффициенты.Если совпадают, то произвожу точное сравнение.И так на всем изображении?
OverDoser вне форума  
Отправить сообщение для OverDoser с помощью ICQ Ответить с цитированием
Старый 04.11.2011, 17:16   #52
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 7,637
Репутация скрыта [+/-]
OverDoser, Вы оба рисунка приводите к вейвлет-преобразованию, а затем начинаете искать на соответствующих уровнях коэффициентов первого изображения второе изображение. Т.е. искать вхождение "крупных" копий изображения сначала на "крупных" копиях картинки, потом на более мелких. Естественно, о точном сходстве речи идти не может, тут необходимо выработать определённый критерий похожести. Однако и в Вашем методе о точном сходстве до единого пикселя можно говорить весьма условно.
P.S. Кстати, алгоритмы распознавания образов используют, как правило, нейронные сети.

Если же Вы ищите именно точное сходство, пиксель к пикселю, то придумайте какую-нибудь контрольную сумму по изображению, и всё. Но тогда задача будет совершенно бесполезной и нереалистичной.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)

Последний раз редактировалось pokibor; 04.11.2011 в 17:20.
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием
Старый 04.11.2011, 17:20   #53
Опытный игрок
 
Аватар для OverDoser
 
Регистрация: 08.09.2006
Адрес: столица России - Москва
Сообщений: 1,411
Репутация: 130 [+/-]
pokibor, То, что используются здесь в основном нейронные системы-читал, но для меня пока рано)
С принципом распознавания здесь я понял, спасибо)
Теперь будем разбираться с самим вейвлет-преобразованию)
OverDoser вне форума  
Отправить сообщение для OverDoser с помощью ICQ Ответить с цитированием
Старый 04.11.2011, 21:33   #54
Игрок
 
Аватар для deriop
 
Регистрация: 01.01.2009
Сообщений: 529
Репутация: 124 [+/-]
Не подскажете видеоуроки(ну или любой другой материал), с помощью которых можно с нуля обучиться этому языку программирования.
deriop вне форума  
Ответить с цитированием
Старый 04.11.2011, 22:21   #55
Гейммастер
 
Аватар для Mad-Dan
 
Регистрация: 07.06.2005
Адрес: unknow
Сообщений: 8,967
Репутация: 623 [+/-]
deriop,
учимся читать FAQ.
__________________
Бывший Dart Luke

Мечтаю быть модером и всех банить.... Но ведь не дадут (((((

"cъел еретика-спас дерево,"- оголодавший космодесант
Mad-Dan вне форума  
Ответить с цитированием
Старый 06.11.2011, 17:03   #56
Опытный игрок
 
Аватар для OverDoser
 
Регистрация: 08.09.2006
Адрес: столица России - Москва
Сообщений: 1,411
Репутация: 130 [+/-]
Значит, вернусь к задаче.
Таки мне удалось сократить время выполнения операции сравнение пикселей( с 7 минут до 1 с за счет другого подхода +распараллеливания задачи).
Теперь задача моя формулируется по другому:
Имеется два изображения:первое изображение бинарное(те состоит из 0x000000 и oxFFFFFF), на котором изображены различны объекты(они не пересекаются) На нем фон-черное, объекты-белое.
Второе изображение цветное(известно только, что фон белый), на нем изображен какой то объект( и известно, что этот объект изображен на 1 изображении:он может быть повернут под углом или масштабирован,но сама по себе форма остается постоянной).
С помощью каких средств и способов можно реализовать поиск объекта,изображенного на втором рисунке, на первом изображении?
OverDoser вне форума  
Отправить сообщение для OverDoser с помощью ICQ Ответить с цитированием
Старый 06.11.2011, 17:39   #57
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 7,637
Репутация скрыта [+/-]
OverDoser, давайте сразу решим, алгоритм какой сложности и работоспособности Вам нужен. Всегда можно перебирать "в тупую", ограничиваясь лишь элементарной оптимизацией вроде подсчёта контрольной суммы и прочего подобного.
И, конечно, есть более сложные, но и куда более эффективные алгоритмы, требующие определённого преобразования данных, использования методов искусственного интеллекта, обучения и прочего.

Конкретно Ваш случай, я думаю, предполагает вектризацию объектов как основу алгоритма. Поворачивать и масштабировать векторные изображения куда проще, нежели растровые (что очевидно). Тем более на одном из изображений фактически контур объекта и изображён.

P.S. А вообще, тут можно с огромным интересом обсудить применение фрактального подхода, т.е. подбор для изображения IFS и сравнения коэффициентов. Но это совершенно отдельная тема.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)

Последний раз редактировалось pokibor; 06.11.2011 в 17:43.
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием
Старый 06.11.2011, 18:02   #58
Опытный игрок
 
Аватар для OverDoser
 
Регистрация: 08.09.2006
Адрес: столица России - Москва
Сообщений: 1,411
Репутация: 130 [+/-]
pokibor, С учетом того, что сам по себе алгоритм имеет довольно большое кол-во условностей, считаю, что для поиска не нужен сильно мудреный способ поиска.(тк первоначальный этап алгоритма-отбор лишних цветов-сводит на нет необходимость в сложных алгоритмов)
Те чтобы сочеталось простота+эффективность+(если это возможно)быстрота
OverDoser вне форума  
Отправить сообщение для OverDoser с помощью ICQ Ответить с цитированием
Старый 06.11.2011, 18:21   #59
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 7,637
Репутация скрыта [+/-]
OverDoser, тогда перебирайте все возможные растровые варианты, раз быстрота на третьем месте
Дело в том, что вектризация всё равно необходима, на мой взгляд. Масштабирование - ещё куда ни шло, можно, как Вы делали в предыдущем алгоритме, привести одно изображение к масштабу другого, а вот поворот... ну разве что вращать на 360 градусов с достаточно малым шагом и (для каждого!) масштабировать, затем смотреть. Это трудно назвать эффективным и быстрым алгоритмом, тем более учитывая возможные искажения при повороте.
С вектризованным же изображением работать попроще будет. Как минимум, поворачивать/масштабировать надо будет вектора, а не пиксели, что само по себе сильно упрощает дело. Ну и затем можно накрутить массу оптимизационных улучшений. Например, если вектризация идёт до отрезков контура, то можно запоминать последовательность их длин на контуре, и сравнивать сперва именно длины (отсюда сразу с хорошей вероятностью получается масштаб). Но, опять же, всё это будет работать лишь примерно, в определённых пределах, за счёт погрешностей.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)

Последний раз редактировалось pokibor; 06.11.2011 в 18:24.
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием
Старый 06.11.2011, 18:45   #60
Опытный игрок
 
Аватар для OverDoser
 
Регистрация: 08.09.2006
Адрес: столица России - Москва
Сообщений: 1,411
Репутация: 130 [+/-]
pokibor, А возможно ли использование индивидуальных свойств объектов(если они, конечно, есть =) ), которые не меняются при масштабировании?
Мы же можем их перебрать, и если погрешность очень низкая, то очевидно, что это нужный нам объект.
OverDoser вне форума  
Отправить сообщение для OverDoser с помощью ICQ Ответить с цитированием
Ответ

Метки
c#, обсуждение, помощь, программирование

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 21:40.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Rambler's Top100 Яндекс цитирования