![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Так цвет получается неопределенный! Какой все таки цвет ты получаешь (один цвет): красный или зеленый?
Не красный и не зеленый, а цвет с яркостью 127 ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Black_Star |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 9.9.2003 Где: Minsk Репутация: 4 Всего: 4 |
:Е Достал... пусть будет ЯРКОСТЬ !!!
Но если сам цвет 255, то яркость 127 - "тусклость" ! Это ладно... Возьми цвет желтый RGB(255,255,0)... То RGB(127,127,0) похож на темный желтый, но ужасно... |
|||
|
||||
-Mikle- |
|
||||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 8 Всего: 59 |
Вы друг друга не понимаете
![]() cardinal, Black_Star прав, он говорит о том, что в RGB нет такого понятия как яркость, есть цвет из разных уровней 3 составляющих. Black_Star, cardinal прав, он совсем и не доказывает что есть яркость у RGB, он просто говорит что пятно, для нашего глаза, это такой цвет, который при переводе в серые полутона, воспринимается нашим глазом темнее, чем другие. Например зеленый воздействует на сетчатку "мощнее", чем синий. Вообще тема - это подсчет пятен. Реализовать это проще всего рассматривая картинку как черно-белое изображение, не вдаваясь в то, какого цвета сами пятна. В ЧБ картинке все три составляющие равны, и определяют, как бы, яркость белого цвета. Ты прав Black_Star, с позиции программы это просто разные цвета, но мы ищем ПЯТНА, которые может увидеть наш глаз на чб картинке, а это значит, что нам надо найти места, которые для глаза темнее, т.е. значение любой из 3 составляющих ЧБ изображения, например, меньше 100. cardinal просто берет цвет и сразу рассматривает его как черно-белую точку, называя полученное значение яркостью(т.е. насколько эта точка для нашего глаза темнее-светлее). Вот и все! ![]()
Удачи! ![]() -------------------- Если тебе плюют в спину, значит ты впереди... |
||||
|
|||||
Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
-Mikle- прав разница между яркостью и цветом не так уж и важна. Предложение -Mikle-а перевести в ч/б я уже пробовал. Напомню, что искомая картинка это отсканированая фотография из электромикроскопа
![]() ![]() Вообще есть идея: при встрече пятна изучать его размеры, затем брать его в простую фигуру(например круг) и заливать его каким-либо цветом например vbGreen, при следуещей встрече с vbGreen_ом просто проходить мимо. В результате количество таких заливок и будет искомое кол-во пятен. Может у кого есть идеи проще? ![]() Это сообщение отредактировал(а) U-Boot - 18.9.2003, 16:52 |
|||
|
||||
Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
Люди, нужны ещё идеи.
![]() |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Я если честно пока не понял, почему тебе не подошла та идея, которую я тебе еще в начале темы написал. Если картинки, которые ты сканируешь не очень большие, то кинь мне их на ящик, чтобы я понимал, что надо сделать получше. А если они здоровые, то вырежи фрагмент и кинь его на ящик. У меня просто подключение к инету не самое быстрое, да и ящик маленький
![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
OK в скором времени постараюсь вытащить фото в инет и сделать его доступным для всех.
![]() |
|||
|
||||
Mephisto |
|
||||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
Идея конечно супер, но....
Хорошо, но есть вопрос: как при переходе на следующую строчку определить является ли найденое пятно продолжением первого, либо это уже пятно номер 3? ![]() |
||||
|
|||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Ты бегаешь по строчкам слева направо, соответственно если слево от точки стоит цифра, то если if по темноте проходит, текущая точка будет с этим же номером. Если слева пусто, то ты смотришь на строчке выше. Если ты там найдешь на позициях (текущая точка - ширина bmp - 1) или (текущая точка - ширина bmp) или (текущая точка - ширина bmp + 1) каую нибудь цифру, то и текущей точке ты присваиваешь эту цифру, если нет, то это новое пятно.
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
еще нужно предучмотреть механизм объединения пятен: это придется делать в случае U-образных пятен например, обработанные строки будут такие: 00000000000000000000 00000111100000220000 00001111100022222000 00000111100022200000 00000001110022200000 а следующая строчка: 000000000*****000000 -------------------- qqq |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Да, maxim1000, есть такое дело. Спасибо, за дельный совет!
А механизм прост. Надо только переделать немного то, что я описал сверху ![]() Ты бегаешь по строчкам слева направо, соответственно если слево от точки стоит цифра, то если if по темноте проходит, текущая точка будет с этим же номером. Если слева от точки стоит цифра и ты находишь на строчке выше на позициях (текущая точка - ширина bmp - 1) или (текущая точка - ширина bmp) или (текущая точка - ширина bmp + 1) какую нибудь цифру, то значит мы имеем U-образное пятно. Ту цифру, которую мы нашли сверху (и остальные такие же в буфере) мы заменяем на цифру, которая находится слева от точки. Если слева пусто, то ты смотришь на строчке выше. Если ты там найдешь на позициях (текущая точка - ширина bmp - 1) или (текущая точка - ширина bmp) или (текущая точка - ширина bmp + 1) какую нибудь цифру, то и текущей точке ты присваиваешь эту цифру, если нет, то это новое пятно. Ну и буфер (мне вот сейчас в голову пришло) надо сделать на две точки шире, чем сама картинка, тогда не надо будет бесконечно проверять на краю ты находишься или нет. Начинать надо в правильном месте и прыгать по строчкам тоже. -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
Спасибо всем кто ответил! Проблема подсчета пятен почти реализована. Осталось только тестировать.
Поступила новая задача, более сложная: Имеется более плотная упаковка, необходимо так же подсчитать количество. Но сдесь это гораздо сложнее выполнить. Ну вобщем сами смотрите... ![]() Разные размеры картинок: First 75x100 (3.8 kb) Second 301x400 (32.9 kb) Third 2029x2696 (399.3 kb) Если есть какие идеи, то... За раннее спасибо. Это сообщение отредактировал(а) U-Boot - 1.10.2003, 16:55 |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Ну и что нам с ним делать? Ты сам писать функцию начинай, а если что поможем! -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Mephisto |
|
||||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
Да, прикольно получилось. ![]() Это была версия для редактирования. Если картинка не подгружается, то можете посмотреть картинку по указанным адрессам. ![]() |
||||
|
|||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Дааааа... Пятна оказывается не разделены четко, что делает все немного сложнее.
Ну тогда есть такое предложение: Бегаешь по строчкам и ищешь какую нибудь светлую точку. Это будет что-нибудь типа середины пятна. От этой точки ты идешь вправо, вниз, влево и вверх пока не наткнешься на темную точку. Эти темные точки будут крайними точками пятна. Потом ты объединяешь эти четыре крайних точки, делая из них например прямоугольник. Этот прямоугольник будет приблизительно площадью, которую занимает пятно. Ну а потом, как ты уже и говорил можешь его залить, чтобы потом ясно было, где ты уже пятно отметил. Ну и так далее... Короче главное тут выбрать светлую границу и темную границу по которым ты и будешь определять "середина" это пятна или крайняя точка. В конце концов количество заливок - это и есть кол-во пятен +/- столько-то пятен (зависит от размера картинки). Но это дело такое. В конце концов потом ты можешь пробежать картинку четыре раза: с верхней левой точки, с верхней правой точки, с нижней левой точки и с нижней правой точки (ну чтобы каждый раз получались разные заливки), а результаты поделить на четыре. Я думаю результат будет неплохим. Только вот жалко тебя ![]() Успехов! -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |