Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/72: Рейтинг темы: голосов - 72, средняя оценка - 4.97
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309

Охарактеризовать объект по каким-либо признакам его строения

14.10.2012, 23:01. Показов 14762. Ответов 222
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Стоит задача охарактеризовать объект по каким-либо признакам его строения.

Есть графики (построенные по набору расстояний от центра объекта к каждой точке его периметра) для объектов известных нам типов, каждому типу присущи свои особенности формы (всевозможные ямки и т.д.). У некоторых типов могут присутствовать сразу несколько особенностей.

Как научить программу искать эти особенности, если они могут проявляться на разных масштабах?
Какие-то маски накладываются растягивающиеся или как?

Примеры:
Миниатюры
Охарактеризовать объект по каким-либо признакам его строения   Охарактеризовать объект по каким-либо признакам его строения  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.10.2012, 23:01
Ответы с готовыми решениями:

Построить круг и закрасить его каким-либо цветом
Нужно построить круг и закрасить его каким-либо цветом. Пробовал использовать процедуры PieSlice, FillEllipse, но у них получается...

По каким признакам мы выбираем себе пару
to Елена Да может, может, я уже говорил про майора Чингачгука, вы невнимательно читали. Я не о том. В молодости все глупые девушки...

По каким диагностическим признакам в шлифе можно отличить кварц от ортоклаза?
3)По каким диагностическим признакам в шлифе можно отличить кварц от ортоклаза?

222
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
19.10.2012, 00:04  [ТС]
Студворк — интернет-сервис помощи студентам
gumi250, нельзя) задачи ставлю не я, а мой научник, в том семестре одна, в этом такая)
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
19.10.2012, 00:16
Ну тогда я бы на вашем месте не старался решить эту задачу нормально, а решил бы ее для галочки, как попроще. Например, можно разложить график в ряд Фурье и посмотреть соотношение частот, это довольно просто.
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
19.10.2012, 08:43
что бы определиться с особенностями присущими типам можно пойти двумя путями:
1 особенности находит человек и скармливает программе
2 в программу закладываются несколько кривых и она начинает искать в них общие части. процедура поиска примерна такая же - выделяется участок кривой (с разным началом и разного размера) - кандидат на особенность. приводится в безразмерный вид и ищется во всех остальных образцах. если он найден во всех - это и есть нужная нам особенность. кроме того найденные куски должны иметь максимальную длину и не пересекаться - по идее это убережет от особенностей внутри особенностей
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
19.10.2012, 19:58  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
кандидат на особенность. приводится в безразмерный вид и ищется во всех остальных образцах. если он найден во всех
ну участок все равно не идентичен такому-же на другом графике, думаете, что при приведении его к безразмерному, он наткнется на что-нибудь?
Вот, например, оба графика 7го типа, получится программно эти две ямки засчитать за одну особенность?

Как в принципе выглядит алгоритм сравнения размерного графика полной клетки с безразмерным участком с особенностью? если он просто растягивается, то я не очень уверен в том, что попадется такой момент, чтоб без какого-либо допуска все совпало? или нужно ввести допустимое СКО одной кривой от другой? а допуск подгонять? если так, то тогда может руками проще выделять особенности, а программа пусть пишет данные и, когда наберет все, считает по ним "эталон" особенности, а за допустимое отклонение возьмем интервал между графиками, наиболее удаленными вверх и вниз?
Миниатюры
Охарактеризовать объект по каким-либо признакам его строения  
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
19.10.2012, 22:21
наложение кривых конечно же никогда не сможет быть точным - про то что нужен допуск (предельное абсолютное отклонение или иной критерий) писалось с самого начала.
сравнение выглядит следующим образом. представьте что перед нами анализируемый график и прозрачная резиновая бумажка с нарисованным на ней графиком особенности. мы начинаем елозить этой бумажкой по графику растягивая и сужая ее пока не обнаружим нечто почти совпадающее с тем что на ней изображено. допуск можно получить либо экспертным путем (человек посмотрел и решил) либо погонять программу на разных допусках посмотрев какой из них дает лучшие результаты.
1
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
19.10.2012, 22:52
Цитата Сообщение от vxg Посмотреть сообщение
мы начинаем елозить этой бумажкой по графику растягивая и сужая ее пока не обнаружим нечто почти совпадающее с тем что на ней изображено.
Довольно трудоемкий процесс в плане вычислений. На большом объеме данных это может оказаться весьма критично. Не лучше ли анализировать соотношения значений пиков и соотношения расстояний между ними? Тогда масштаб теряет значение и растягивать по-разному шаблон не надо.
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
19.10.2012, 22:55  [ТС]
Итак.попытка реализации.
Возьмем моноциты, там есть особенность строения, что-то вроде "скручивание ядра", которое на графике отображается ямкой, с острым углом. В картинках есть пару клеток, неправильно сегментированные, это я подправлю.

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

Тут такие вопросы:
1)у каждой клетки длина особенности будет своя, не получится ли эталонная кривая непохожа на то, с чего мы ее строим?
2)как учесть допуск исходя из вопроса 1? может получиться, что на каких-то точках (например начало склона) его не будет, т.к. ,предположим, что у одной клетки склон длиннее чем у всех?
3)Или стоит брать одинаковую длину у всех клеток, но опять же просуммировав тот самый длинный склон с горизонтальными прямыми, мы его потеряем?
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
19.10.2012, 22:56  [ТС]
Примеры моноцитов.
Вложения
Тип файла: rar Моноцит 7.rar (1.48 Мб, 5 просмотров)
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
19.10.2012, 23:01  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Не лучше ли анализировать соотношения значений пиков и соотношения расстояний между ними
Т.е. мы может пропустить не интересующие нас моменты? например если ищем ямку, пропускаем горизонтальные участки,так?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
19.10.2012, 23:13
Цитата Сообщение от Sor Посмотреть сообщение
например если ищем ямку, пропускаем горизонтальные участки,так?
Ну, да. Такой горизонтальный участок при анализе отпадет автоматом, так как расстояние между пиками на нем очень велико.
При анализе кривой мы один раз смотрим все ее точки и составляем график соотношений, содержащий на порядки меньше информации, нежели чем массив точек кривой. Соответственно, и анализ такого графика будет куда проще. Если, к примеру, особенность, что мы ищем, выражается во взаимном расположении около пяти пиков(ямка - края и дно, плюс промежуточные пики, характеризующие возможную непрямолинейность стенок ямки), то на графике соотношений кривой мы уже целенаправлено ищем пик за пиком и смотрим, что следует за ним.
1
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
19.10.2012, 23:58
моноцит... ни за что бы не догадался что на всех фото родственные объекты... разве что по цвету сходство... и это вывод мозга - довольно сообразительной штуки... а программа она вообще у виска покрутит... тут надо что то другое или я не туда смотрю...
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
20.10.2012, 00:05  [ТС]
да там сегментация не очень еще.
вот, я отсегментировал нормально.

и для общей картины восприятия еще пару лимфоцитов. я к тому, что клетки разные по форме.
Вложения
Тип файла: rar выборка лимфоцитов.rar (991.0 Кб, 6 просмотров)
Тип файла: rar Моноцит segm.rar (1.23 Мб, 6 просмотров)
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
20.10.2012, 04:25
  • Вы забыли, что наличие повторяюшегося участка кривой в группе вообщемто не совсем достаточно для признака. В простом случае (к которому вы хотите придти), такого участка еще не должно встречаться в других группах!
  • Может быть более сложный случай, так скажем нескольких признаков. Например, и у животных и у насекомых есть рога (корова, улитка) и ноги (корова, муравей) и хвост (корова, скорпион). При этом существую животные и насекомые без рогов или без ног или без хвостов. По одному признаку определить где кто невозможно, но по нескольким можно. Сразу и рога, ноги и хвост могут быть только у животных (коров). А отсутствие рогов, ног и хвоста может быть только у насекомых (червяки) (про змей забываем). Если есть рога, но нет хвоста и ног значит улитка, и т.д.
  • Я полагаю, вы действуете так: Выделяете на рисунке клетку, находите ее центр масс, и из этого центра масс испускаете лучи к краям клетки. А потом строите график х-угол луча, у-расстояние от края клетки до центра масс. Так? Если так то вопрос: Данный подход корректен при выпуклой форме клетки. Но когда есть вогнутости (Моноцит segm\23 моноцит или Моноцит segm\9 моноцит), то луч исходящий из центра масс может пересекать край клетки в двух и более местах! У вас на графике луч всегда пересекает контур клетки в одном месте. Как так? Если вы берете одно пересечение (ближнее или дальнее), то фактически вы неправильно описываете форму клетки. Ваш график не будет корректно описывать форму клетки и шаманство с графиками далее бессмысленны!
  • А можно выложить изображения других клеток? И как мне их сопоставить с нумерацией графиков? Моноцит, это какой номер группы графиков?
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
20.10.2012, 10:03
относительно невыпуклых кривых - можно представить кривую в параметрической форме
x = x(t)
y = y(t)
t - расстояние по кривой от ее начала до текущей точки
и вычислять ее кривизну (отношение угла поворота касательной к кривой к приращению длины кривой)
k = |x' y'' - x'' y'| / (x'2 + y'2)3/2
тогда все проблемы с невыпуклостью и даже самопересечением решаться зато добавиться проблема с точностью вычисления производных и тем более вторых производных по экспериментальным данным - эти данные должны быть как можно менее зашумлены как можно более обширны и быть дважды непрерывно дифференцируемой

Добавлено через 3 минуты
про новые моноциты и лимфоциты. единственное что выдает мозг: моноциты имеют форму подковы (облако с заливом) а лимфоциты имеют круглую форму. анализом кривых тут и не пахнет. скорее подойдет поиск облаков точек и анализ областей их стыковки или что то вроде того.
1
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
20.10.2012, 10:50
x = x(t)
y = y(t)
t - расстояние по кривой от ее начала до текущей точки
и вычислять ее кривизну (отношение угла поворота касательной к кривой к приращению длины кривой)
k = |x' y'' - x'' y'| / (x'2 + y'2)3/2
Вы хотите построить кривую k(t) ? А еще можно проще, построить кривую R(t), где R - расстояние до центра массы.
моноциты имеют форму подковы (облако с заливом) а лимфоциты имеют круглую форму. ... скорее подойдет поиск облаков точек и анализ областей их стыковки или что то вроде того.
На первый взгляд да. Но стоит вспомнить про оставшиеся 8 типов клеток и мы понимаем что не все так просто.
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
20.10.2012, 14:42  [ТС]
Цитата Сообщение от gumi250 Посмотреть сообщение
Вы забыли, что наличие повторяюшегося участка кривой в группе вообщемто не совсем достаточно для признака. В простом случае (к которому вы хотите придти), такого участка еще не должно встречаться в других группах!
он может и встречаться в других, но не во всех, тогда этот метод сузит область сравнения с базой.

Цитата Сообщение от gumi250 Посмотреть сообщение
Может быть более сложный случай, так скажем нескольких признаков
несомненно. просто я хотел бы для себя определить алгоритм работы с одним признаком хотя бы, что бы потом уже не обращаться за помощью.



Цитата Сообщение от gumi250 Посмотреть сообщение
Я полагаю, вы действуете так: Выделяете на рисунке клетку, находите ее центр масс, и из этого центра масс испускаете лучи к краям клетки. А потом строите график х-угол луча, у-расстояние от края клетки до центра масс. Так? Если так то вопрос: Данный подход корректен при выпуклой форме клетки. Но когда есть вогнутости (Моноцит segm\23 моноцит или Моноцит segm\9 моноцит), то луч исходящий из центра масс может пересекать край клетки в двух и более местах! У вас на графике луч всегда пересекает контур клетки в одном месте. Как так? Если вы берете одно пересечение (ближнее или дальнее), то фактически вы неправильно описываете форму клетки. Ваш график не будет корректно описывать форму клетки и шаманство с графиками далее бессмысленны!
В предыдущем семестре я учел, что есть вогнутые объекты.
Алгоритм такой: от центра клетки к каждой точке на ее границе последовательно считаем расстояние по евклидовой метрике (как гипотенузу прямоугольного угла). этот метод не сбоит.



Цитата Сообщение от gumi250 Посмотреть сообщение
А можно выложить изображения других клеток? И как мне их сопоставить с нумерацией графиков? Моноцит, это какой номер группы графиков?
моноцит это 7. но для моноцитов, которыя я выложил во второй раз нужно перерисовать графики, т.к. я до конца убрал цитоплазму из изображения. вечером выложу все клетки тогда.
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
20.10.2012, 15:51
признак может и встречаться в других, но не во всех, тогда этот метод сузит область сравнения с базой.
Вы как то определитесь чего хотите быстрее или точнее? Если быстрее то да, пойдет. Если точнее, то не получится. Т.к. конечный метод сравнения все равно будет как и раньше, а стало быть точность не изменится. Если нынешняя точность вас не устраивает, то и смысла от такого подхода нет.
В предыдущем семестре я учел, что есть вогнутые объекты.
Алгоритм такой: от центра клетки к каждой точке на ее границе последовательно считаем расстояние по евклидовой метрике (как гипотенузу прямоугольного угла). этот метод не сбоит.
Что на ваших грфиках идет по Х и что по Y?

А вы не пробовали поговорить со своим научным руководителем? Он же руководитель, а это подразумевает не только выдачу невыполнимого задания, но и осуществления руководства, т.е. помощи в глобальных вопросах. Т.е. если студент не знает, как сделать курсовую (диплом) и "уперся в стену", руководитель должен подсказать выход, это его работа.
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
20.10.2012, 19:58  [ТС]
Цитата Сообщение от gumi250 Посмотреть сообщение
как то определитесь
да я хочу выжать по-полной, если не получится по особенностям определить тип сразу, то буду делать сужение сравнения просто. в идеале, конечно, я б хотел по особенностям все определять, без какой либо базы вообще.

Цитата Сообщение от gumi250 Посмотреть сообщение
Что на ваших грфиках идет по Х и что по Y?
по у идет расстояние от центра масс до i-ой точки периметра, по х идут порядковые номера этих точек (i). точки не повторяются и идут последовательно одна за одной по часовой стрелке, так если бы мы пальцем вели по периметру объекта, учитывая все выпуклости и ямки. тут все налажено и проверено) Нюанс 1- не известно где именно стартует обход объекта, но для данной задачи это и не важно, все равно потом под всеми углами все сравнивается.

Добавлено через 4 минуты
gumi250, с руководителем я разговаривал, он генерирует, но не занимается их реализацией, поэтому некоторые вещи (например быстродействие) он не может учитывать.
я просто не считаю, что зашел в тупик, в таких ситуациях и идет процесс образования, и он не должен ограничиваться мнением одного руководителя. поэтому я рад, что есть возможность спросить у вас и других людей с большим опытом, и своими идеями.

Добавлено через 9 минут
Пока не буду выкладывать ядра. посмотрел повнимательнее, не устраивает меня их сегментация (для того семестра не столь она играла роль). отсегментирую, перестрою пару графиков и тогда выложу все.
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
20.10.2012, 20:35
Цитата Сообщение от gumi250 Посмотреть сообщение
А еще можно проще, построить кривую R(t)
- нет, не думаю что проще и правильнее. потому что центр масс в случае клетки это все таки довольно произвольная точка которая гуляет. характер извивания кривой думаю будет адекватнее представлять особенность даже если клетка сокращается. кроме того мы сразу получаем безразмерный вариант приводя все кривые к виду k(t). как видно автор шел похожим путем. правда у него вместо параметра шел порядковый номер точки. если расстояния между точками постоянные, то это фактически параметрический вид уравнения. ну и кривизну он не вычислял ограничившись масштабированием.
1
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
21.10.2012, 03:03
я просто не считаю, что зашел в тупик, в таких ситуациях и идет процесс образования, и он не должен ограничиваться мнением одного руководителя. поэтому я рад, что есть возможность спросить у вас и других людей с большим опытом, и своими идеями.
Рано или поздно придется показать результат и слова: "я старался, но у меня не получилось", не пройдут. У вас будет что показать?
потому что центр масс в случае клетки это все таки довольно произвольная точка которая гуляет. характер извивания кривой думаю будет адекватнее представлять особенность даже если клетка сокращается. кроме того мы сразу получаем безразмерный вариант приводя все кривые к виду k(t). как видно автор шел похожим путем. правда у него вместо параметра шел порядковый номер точки. если расстояния между точками постоянные, то это фактически параметрический вид уравнения. ну и кривизну он не вычислял ограничившись масштабированием.
Автор, пошел не вашим а моим путем, т.к. он строил не k(t), а R(t). У каждого метода есть недостатки. В вашем методе недостаток - шум. А еще если внимательно взглянуть на картинку (при пиксельном разрешении), то можно увидеть что из-за наличия пикселей угол кривизны периметра не любой, а кратен 45 градусам. Вы все еще уверены в применимости вашего метода?

Расстояние между точками периметра одинаковое? Можно ли порядковый номер точки перевести в расстояние (хотя бы относительное от 0 до 1)?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.10.2012, 03:03
Помогаю со студенческими работами здесь

По каким характерным признакам можно определить респектабельность фирмы-поставщика
По каким характерным признакам можно определить респектабельность фирмы-поставщика??? Добавлено через 13 минут По каким характерным...

Прошу объяснить мне почему я не могу задать размер массива с консоли, без его ограничения каким либо числом?
int n; int mx = 0; cin >> n; int a ; //не выходит это чертово n использовать приходится писать по дркугому for...

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

Необходимо в зависимости от подставляемых значений либо удалять рисунок либо оставлять его
Всем привет. Просьба оказать посильную помощь. Есть Word шаблон, он заполняется из Excel при помощи значений в ячейках, которые...

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


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru