| История развития программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Подсчет пятен, Как посчитать пятна??? EXCEL + VB = САПР. SOS, EXCEL + VB = САПР. SOS cstext32.ocx, cstext32.ocx помогите с видеорежимом Подкинте пример DragDrop Как в Data Report печатаьть в А3 Сортировка в TDBCombo Нужна поддержка!, Хелп! ActiveX Не могу установить Visual J++ 6.0 Преобразование строки в выражение, нужна функция типа eval... Не выгружается Excel, из списка процессов Проверка орфографии текста как вернуть всю строку, содержащую некое слово??, строки Сканировать через VB, ни кто не пробывал, Сканировать через VB, ни кто не пробывал Excel-совместимость..., Чтоб приложение работало со всеми Excel Нужно построить граф..., нужен компонент... Запуск приложения скрытым Кто-нибудь программировал FineReader Стеганография, Внедрение текста в картинку. Среда разработки, где лучше начинать? Делаю АОН, куда он подаёт ответ? База данных в Visual Basic Как работает функция Сохранение MSFlexGrid... Переменная с начальным значением..., как такое сотворить?.. Перевод декларации функции с VB на C++.., для этого вороса надо знать и VB и C++ Размер переменной..., ламерские вопросы... Как Вы относитесь к курящим девушкам? Системный курсор в виде руки, как сделать? Меню подскажите порт плз Помогите разобраться с ActiveX , плиз!! Немного о VB, в основном вопросы о VB Добавление элементов в меню, во время выполнения Контекстное меню Сохранение иконки в файл Какие add-ins можете порекомендовать? XML VB VB.NET не выходит:), Поиск по XML Подписывание проекта VB, Создание сертификата для подписывания... Динамическое создание элементов формы Word - Find.Execute из VB, с Find'ом проблема какая-то Компоненты, библиотеки и пр, Только фри плиз Hibernate и mapping Как испортить класс файл плейер по умолчанию, как его найти ? Опять Ексель, Помоготе создать анкетку Timer, Timer + Label Excel таблица при создании анкеты, Excel Зачем нужен VB? Вопрос по WinSock и FTP, Вопрос по WinSock и FTP Кто поделится ? средой... Чтоб не стиралось нарисованное на форме... intet-vb, связь c inet в vb6 Как создать обработчик события, в VBA посоветуйте diver Make ...*exe!!!, Как правильно откомпилить? Как убрать сообщение? Как в ListBox запоминать данные,, которые не должны пропадать...... Доступ к Oracle из Access Генерация отчета масштабирование в PictureBox, масштабирование в PictureBox graphic mode, что за режимы меняются и как это сделать Как сделать свой поисовик файлов. Учебная программа на VBA, Требуется написать прогорамму-обучалку н Копирование информации в буфер обмена., Копирование в буфер через API Кто-нибудь пишет проги для студентов? Как обойтись без инстолятора? Помоготите написать программки на VB, Срочно... Издать звук определенной частоты, Издать звук определенной частоты |
Платные хостинги Раскрутка сайта Книги по программированию Подсчет пятен, Как посчитать пятна???
- Люди, есть вопрос. Как можно посчитать количество пятен на рисунке? Сложность в том, что исходной картинкой является фотография, и пятна имеют разный размер.Спасибо всем кто ответит. - Если под пятнами ты подразумеваешь темные места на картинке, то предется выдумывать какой нибудь хитрый алгоритм (врятли ты готовый найдешь, я вещи и по стандартней не мог найти ). Мысля по этому поводу есть, а вот писать и тестировать предется тебе .Во первых есть два метода определить яркость цвета:- яркость определяется по формуле:(max + min) / 2,при этом max и min это максимальное и минимальное значения из твоего RGB цвета. Что-то не получилось лучше сформулировать . Объясняю на примере. Вот сидит у тебя pixel в bmp, ты смотришь какой у него цвет и получаешь (255, 255, 255), то есть белый. Максимальное значение - это 255 и минимальное тоже, поделили на два и получили 255, то есть ярче не будет. Ну и так далее. С красным (из стандартной palette) ты получишь яркость 127, то бишь среднюю яркость.- А второй метод это определение яркости по формуле, которая определяет яркость наиболее близкою к яркости, которую воспринимаем мы. Вот формула:Яркость = R * 0,3 + G * 0,59 + B * 0,11Красный у тебя будет потемнее в два раза по этой формуле, а белый как был так и останется самым ярким (+/- погрешность если будешь работать без плавующей точки).Во-вторых ты можешь сделать два буфера. При первом просмотре картинки ты запишешь в первый буфер яркости твоих точек, а при втором просмотре ты будешь писать в буфер номер пятна. Вобщем у тебя должен в конце концов быть такой результат:---------------------------------------------------------11111-------------------------------------------------111111------------------2222222---------------11111111---------------------2222222--------------1111111------------------22222222-----------------------------------------------222222-------------------------------------22222222222----333333333---------------------------------------------333333333----------------------------------------3333333333333-------------------------Ну и соответственно самая большая цифра второго буфера это и есть количество пятен на твоем рисунке.Успехов! - 255 - максимум, верю.Но 255 - минимум???Найдем мы, например, число 100... получается (100+255)/2=177.5 ?хм... это еще куда не шло... а найдем 1! 1 - это почти ничто, а получим в итоге 128! Это будет резко отличаться от действительности...Предлагаю такой вариант, но он слишком долгий...Просматриваем всю картинку...A1=Point(x,y)A2=Point(x+1,y)A3=Point(x-1,y)......A9=Point(x+1,y+1)Далее хитрым уравнением находим среднее значение всех цветов, это и будет цвет в точке х,у. - Полностью согласен .QUOTE Найдем мы, например, число 100... получается (100+255)/2=177.5 ?хм... это еще куда не шло... а найдем 1! 1 - это почти ничто, а получим в итоге 128! Это будет резко отличаться от действительности...Дело в том, что число 100 или 1 мы не найдем , потому что какждый pixel описывают три параметра. Для того, чтобы понять о чем здесь речь, предлагаю зайти в обыкновенный paint (paint->палитра->изменить палитру) и побаловаться с красками в палитре. Там ты увидишь разные значение красного, зеленого и синиго каналов, и яркость цвета. Так вот (min = "канал с наименьшим значением" + max = "канал с наибольшим значением") / 2 = яркость.QUOTE 255 - максимум, верю.Но 255 - минимумУ белого цвета значения всех каналов равны, соответственно равны и значения min и маx. - Как верно замечено, пиксел описывают 3 параметра. Енто и есть система RGB(красный, зеленый, синий). Они и представляют собою число типа Long, кот. хранятся в структуре BitMap. Насчет яркости там НИЧЕГО не сказано QUOTE Так вот (min = "канал с наименьшим значением" + max = "канал с наибольшим значением") / 2 = яркость.(max + min) / 2Максимальное значение - это 255 и минимальное тоже, поделили на два и получили 255Вопрос. Почему яркость не бывает больше 240??? QUOTE Для того, чтобы понять о чем здесь речь, предлагаю зайти в обыкновенный paint (paint->палитра->изменить палитру) и побаловаться с красками в палитреПредлагаю тоже Яркость, как таковая никакой роли не играет, при изменении яркости меняется и сам цвет (см. на RGB) - Ответ. А кто сказал, что paint так же яркость высчитывает, как я это предложил. Они сказали, что самое яркое значение - это 240, вот и все.QUOTE Яркость, как таковая никакой роли не играет, при изменении яркости меняется и сам цвет (см. на RGB)Ну а тут мы уже от темы отклоняемся . Человек хочет пятна считать, соответственно яркость цвета тут играет роль. - Да, но понятие яркости такое размытое...Яркость - не что иное, как сам цвет. Просто надо высчитывать значение соотв. цвета (0-255). И ничего делить не надо Возьми просто красный RGB(255,0,0)но он может быть и RGB(100,0,0) просто кажется, что тускнее...Но это изменение не яркости, а самого цвета!А потому вычислить его яркость или неяркость нереально...В моем 1м примере я предлагал сравнивать текущую точку с окружающими... Мотом брать "среднее". Но это будет типа метода Blur.А для бооольших пятен надо ваще нечто выдумывать.... А то, что менять яркость.... приведет к ZOrder картинки - Ничего тут размытого нет! Как же dithering работает, если яркость - это размытое понятие?QUOTE Просто надо высчитывать значение соотв. цвета (0-255). И ничего делить не надо.Ну тогда напиши, как ты хочешь высчитывать это значение соотв. цвета (0-255). - А что там сложного?RGB=&h980000 ,т.е. красный равен 155...надо умеличить его "яркость" ставь. например 200... И что, сложно?Но это не яркость! Это изменение самого цвета!!! - Я же вычисляю а ты говоришь нереально .Ладно, переходим к практике.Вот есть у тебя на картинке круг цвета RGB(236,102,79), внутри него есть еще один круг меньшего диаметра - его цвет RGB(207,50,22), внутри него есть еще один круг (тоже меньшего диаметра) цвета RGB(146,35,16).Так вот круг в самом центре очень темный, соответсвенно это и есть пятно. Используя метод (min+max)/2, получаем для трех кругов такие значения: 157, 114, 81. Соответсвенно мы можем сказать, что все что темнее 100 (<100) - это пятна. А теперь твоя очередь, Black_Star потому, что я так и не въехал, что ты предлагаешь делать. Вот еще раз то, что ты написал:QUOTE А что там сложного?RGB=&h980000 ,т.е. красный равен 155...надо умеличить его "яркость" ставь. например 200... И что, сложно? - Black_Star, cardinal абсолютно прав. Естественно для реального значения цвета разные RGB, но задача в том, чтобы определить темнее-светлее. Если рассматривать просто составляющие RGB, то ты не сможешь определить насколько один цвет темнее-светлее другого. Поэтому нужна формула, которая взяв три составляющие, вернула одно число. Наиболее верный результат яркости будет по известной всем формуле: Яркость = R * 0,3 + G * 0,59 + B * 0,11, упомянутой cardinal'ом, так как даст разный результат для значений: RGB(0,0,255) и RGB(0,255,0).cardinal, + за терпеливость - Ну вот... воткнули проверку... теперь тебе нет плюса за терпеливость, простите, еще 440 сообщений надо, чтоб я мог человеку репутацию поднять... .Admin, не многовато-ли 500? Может хотя-бы 100 сделаешь? Если чел ответил 100 раз, значит он уже не просто "прохожий" на форуме... Ну да ладно, решать тебе... - Темнее/светлее понятно... 3 составляющие никто рассматривать не собирался )))(( Народ! Вы хоть понимаете за что я борюсьНет такого в действительности - ЯРКОСТИ !!!Нету... и не будет... это просто цвет... у пущай он хоть триганом. фо-ми высчитывается, всеравно это не яркость, а цвет... просто светлее... Вай...Не интересно с вами спорить - уперлись! Ладно, каждый остался при своих интересах ... - Хорошо, взяли красный RGB(255,0,0). Посчитали то, что ты называешь цветом QUOTE просто светлее по формуле (min + max)/2 и получили (255 + 0)/2 = 127. А теперь вопрос: какой это цвет?Конечно уперлись , но хочется же знать что ты нам сказать то хочешь - 127,0,0 - красный. Однозначно 0,127,0 - зеленый... и т.д. |