|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.08.2013, 11:04 | #1 |
Пользователь
Регистрация: 12.08.2013
Сообщений: 40
|
Определить цвет пикселя и окружающих его пикселей.
Здравствуйте, помогите с задачей.
Нужно узнать цвет пикселя изображения в имидж, и если он черного цвета и его окружают 6,7,8 пикселей белого цвета, то закрасить и его в белый, если меньше 6 пикселей, то в черный. Я так понимаю что нужно реализовать алгоритм. Начиная с левого верхнего угла находить цвет пикселя и выполнять закраску в белый или черный, далее отступить на 1 пиксель и повторить. Причем после каждого перекрашивания начинать с начала то есть с верхнего левого угла так как после перекрашивания соседние пиксели стоит перепроверить. Но как быть с кодом. Помогите пожалуйста. |
31.08.2013, 11:12 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Алгоритм в цикле по Canvas.Pixels. Или лучше по массиву в памяти, с последующей перерисовкой, быстрей будет. Только сомневаюсь, что после каждого перекрашивания на начало. Полный проход до конца и повтор сначала, если что-то поменялось. Не исключаю, что возможно зацикливание. Это что-то типа клеточного автомата "Жизнь". Так вот там зацикливания возможны - т.е. впадание в периодическое повторение конфигурации
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
31.08.2013, 11:49 | #3 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Наверное задача имеет смысл, когда пиксели просматриваются блоками, по 9 пикселей (двойной цикл с шагом по 3), и если центральный соотв. нужным условиям - соотв. обработка с записью в исходную картинку, потом след блок обрабатывается. Так вся картинка и обрабатывается.
Если же каждый пиксель подряд, то получится коряво - предыдущие изменения будут влиять, а ежели с повтором от начала - точно будет зацикливание. Посему надо сделать именно как в "жизни" - текущий этап копируется в массив, получается 2 поколения как бы, идя по первому массиву (рисунку в данном случае) проверяем все пиксели по алгоритму, но записываем не в себя , а во второй массив, таким образом предыдущие изменения не повлияют на обсчёт. В конце цикла полученный второй массив рисовать. Если сделать постоянное формирование таких двух массивов, то и получится клеточный автомат. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определить цвет пикселя в заданных координатах | NewBoy | Общие вопросы C/C++ | 2 | 11.03.2013 11:46 |
определить цвет пикселя формы и сравнить ,выдает ошибку:( | askerpro | Общие вопросы C/C++ | 2 | 17.03.2011 00:51 |
Как определить цвет пикселя? | prw07 | Мультимедиа в Delphi | 1 | 31.08.2010 13:06 |
Как определить цвет пикселя? | zotox | Общие вопросы Delphi | 2 | 15.11.2009 19:05 |
определить цвет каждого пикселя | Dimarik | Общие вопросы C/C++ | 4 | 17.08.2009 16:21 |