35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309

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

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

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

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

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

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

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

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

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

222
Модератор
 Аватар для vxg
3409 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,464
21.12.2012, 13:42
Студворк — интернет-сервис помощи студентам
мне кажется что анализ цветовой картины более похож на разглядывание не силуэтов а фотографий зверей по которым действительно можно догадаться что вот это вот пятно является собакой потому как в центре пятна мы опознали собачью голову "вид сверху"
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
21.12.2012, 14:56
Цитата Сообщение от Sor Посмотреть сообщение
Если сейчас всё распознание происходит на основе цветовой картины ядра и цитоплазмы с точность 63%, то по-идее точность возрастет если добавить анализ форм.
А как измеряют, что 63%? По идее, должен быть абсолютно точный метод дающий 100% результат. Что это за 100% метод?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
21.12.2012, 16:20
Это мозг человеческий. Хотя, он 100-процентными результатами только хвастается...
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
21.12.2012, 22:10  [ТС]
Цитата Сообщение от gumi250 Посмотреть сообщение
А как измеряют, что 63%?
по лабораторным исследованиям, на реальных мазках крови. а потом сравнивается с мнением врача-эксперта.

Цитата Сообщение от gumi250 Посмотреть сообщение
Что это за 100% метод?
Цитата Сообщение от BRcr Посмотреть сообщение
Это мозг человеческий
Ну можно и так сказать, но % ошибки есть всегда.. зависит от квалификации мозга), его усталости и кучи других, не всегда очевидных признаков..



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

Еще стоит вопрос в требованиях к исходным данным. Ну, например, какова освещенность микроскопа, размер изображения, потом учесть разрядность ацп. много вопросов в общем
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
21.12.2012, 22:11  [ТС]
путь к картинке указал, а загрузить не загрузил.
Миниатюры
Охарактеризовать объект по каким-либо признакам его строения  
0
21.12.2012, 23:02

Не по теме:

:scare: Это там зародыш динозавра на картинке! В какой адской лаборатории вы там работаете?!

0
21.12.2012, 23:07  [ТС]

Не по теме:

я даже не знаю, что и ответить. но до парка юрского периода нам далеко еще

0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
22.12.2012, 06:29
Цитата Сообщение от Sor Посмотреть сообщение
по лабораторным исследованиям, на реальных мазках крови. а потом сравнивается с мнением врача-эксперта.
А врач их как распознает? По каким признакам? Если врач это может значит это возможно, значит есть какие то отличительные признаки.
Допустим я новый лаборант, который никогда не отличал эти клетки крови, а теперь я пришел к врачу и прошу научить меня. Врач должен показать мне отличительные признаки одной клетки от другой. О каких признаках он мне расскажет, что бы я тоже мог отличать эти клетки?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
22.12.2012, 09:36
Думаю, для начала он посоветует получить диплом по специальности "Гистология, цитология, клеточная биология" - ну, чтоб поменьше рассказывать пришлось. Это ж, блин, целая наука!
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
22.12.2012, 13:07  [ТС]
gumi250, как я и говорил в основном по структуре ядра и цитоплазмы ( на чем 63% сейчас и работает), но есть и признаки формы (скрученное ядро, шершавые границы).
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
23.12.2012, 20:10  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
...
BRcr, столкнулся с проблемой
C++
1
2
3
4
5
6
7
String current_filename, current_id = "0001";
    rated_files_type::iterator it = a_map[current_id].end( ), end = a_map[current_id].begin( );
    for ( --end; --it != end; )
    {
        current_filename = "base_files\\" + it->second + ".txt";
        ShowMessage( current_filename );
    }
так работает только по первым трем файлам, почему?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
23.12.2012, 22:35
Значит, a_map["0001"] содержит лишь три элемента. Почему - этого я уж знать не могу
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
23.12.2012, 22:47  [ТС]
не-не. содержит 10, пробовал со всеми, всегда до 3х работает только
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
24.12.2012, 12:52
Проверил - все прекрасно работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    using namespace std;
    typedef multimap <double, String> rated_files_type;
    typedef map <String, rated_files_type> combinations_type;
    // ...
 
    combinations_type a_map;
    String id = "0101";
 
    typedef pair <double, String> rated_filename_type;
    a_map[id].insert( rated_filename_type( 21.9, "7" ) );
    a_map[id].insert( rated_filename_type( 94.7, "1" ) );
    a_map[id].insert( rated_filename_type( 10.65, "9" ) );
    a_map[id].insert( rated_filename_type( 33.65, "8" ) );
    a_map[id].insert( rated_filename_type( 98.65, "6" ) );
    a_map[id].insert( rated_filename_type( 55.65, "5" ) );
    a_map[id].insert( rated_filename_type( 94.7, "2" ) );
    a_map[id].insert( rated_filename_type( 2.65, "3" ) );
    a_map[id].insert( rated_filename_type( 15.65, "4" ) );
    a_map[id].insert( rated_filename_type( 33.65, "10" ) );
    a_map[id].insert( rated_filename_type( 9.65, "11" ) );
 
    String current_filename, current_id = "0101", accumulated_str( "" );
    rated_files_type::iterator it = a_map[current_id].end( ), end = a_map[current_id].begin( );
    for ( --end; --it != end; ) {
        accumulated_str += String( it->first ) + " - " + ( current_filename = "base_files\\" + it->second + ".txt" ) + "\n";
    }
    ShowMessage( accumulated_str );
Миниатюры
Охарактеризовать объект по каким-либо признакам его строения  
1
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
25.12.2012, 18:44  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
String id = "0001";
 
    a_map[id].insert( rated_filename_type(26.3, "1") );
    a_map[id].insert( rated_filename_type(62, "2") );
    a_map[id].insert( rated_filename_type(43.8, "3") );
    a_map[id].insert( rated_filename_type(58.2, "4") );
    a_map[id].insert( rated_filename_type(0, "5") );
    a_map[id].insert( rated_filename_type(17.5, "6") );
    a_map[id].insert( rated_filename_type(3.1, "7") );
    a_map[id].insert( rated_filename_type(21.2, "8") );
    a_map[id].insert( rated_filename_type(50.9, "9") );
    a_map[id].insert( rated_filename_type(42.4, "10") );
 
String current_filename, current_id = "0101", accumulated_str( "" );
    rated_files_type::iterator it = a_map[current_id].end( ), end = a_map[current_id].begin( );
    for ( --end; --it != end; ) {
        accumulated_str += String( it->first ) + " - " + ( current_filename = "base_files\\" + it->second + ".txt" ) + "\n";
    }
    ShowMessage( accumulated_str );
Миниатюры
Охарактеризовать объект по каким-либо признакам его строения  
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
25.12.2012, 18:51
У тебя отличаются id и current_id. Внимательнее надо быть.
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
25.12.2012, 18:57  [ТС]
BRcr, прошу прощения, но тут я просто скопировал не из билдера, а с форума.
C++
1
2
3
4
5
6
    String current_filename, current_id = "0001", accumulated_str( "" );
    rated_files_type::iterator it = a_map[current_id].end( ), end = a_map[current_id].begin( );
    for ( --end; --it != end; ) {
        accumulated_str += String( it->first ) + " - " + ( current_filename = "base_files\\" + it->second + ".txt" ) + "\n";
    }
    ShowMessage( accumulated_str );
у меня для всех возможных id (16 штук всего) заполнено все по 10 Id. самое интеренсное, что он выводит то 3 то 4 типа..

Добавлено через 29 секунд
в смысле для id 0001 3 типа, для 1001 четыре)

Добавлено через 50 секунд
для 0000 вообще 6
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
25.12.2012, 19:04
Цитата Сообщение от Sor Посмотреть сообщение
у меня для всех возможных id (16 штук всего) заполнено все по 10 Id
В цикле заполнял, я полагаю? Надо глянуть там. Если есть где-то еще места возможной модификации a_map, тогда и там тоже.
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
25.12.2012, 22:03  [ТС]
заполнял в лоб, т.к. никуда не записывал значения %.
почему-то выводит от 3х до 6ти (включительно) значений, причем для одного и того же id количество выводимых значений не меняется. map нигде не меняется, в итераторах что-то?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//глобально
typedef std::multimap <double, String> rated_files_type;
typedef std::map <String, rated_files_type> combinations_type;
combinations_type a_map;
 
 
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    String id = "1111";
 
    typedef std::pair <double, String> rated_filename_type;
    a_map[id].insert( rated_filename_type(0, "1") );
    a_map[id].insert( rated_filename_type(8.2, "2") );
    a_map[id].insert( rated_filename_type(1.4, "3") );
    a_map[id].insert( rated_filename_type(10.7, "4") );
    a_map[id].insert( rated_filename_type(20, "5") );
    a_map[id].insert( rated_filename_type(1.3, "6") );
    a_map[id].insert( rated_filename_type(12.5, "7") );
    a_map[id].insert( rated_filename_type(9.1, "8") );
    a_map[id].insert( rated_filename_type(0, "9") );
    a_map[id].insert( rated_filename_type(3.3, "10") );
//и т.д.
 
//по кнопке
void __fastcall TForm1::Button4Click(TObject *Sender)
{   
    String current_filename, current_id = "1111", accumulated_str( "" );
    rated_files_type::iterator it = a_map[current_id].end( ), end = a_map[current_id].begin( );
    for ( --end; --it != end; )
    {
        accumulated_str += String( it->first ) + " - " + ( current_filename = "base_files\\" + it->second + ".txt" ) + "\n";
    }
    ShowMessage( accumulated_str );
}
Добавлено через 2 часа 35 минут
меняю значения в строках
C++
1
a_map[id].insert( rated_filename_type(0, "1") );
и в зависимости от них выдает то 5 то 6 файлов.

Добавлено через 7 минут
совсем с ума сходит уже
C++
1
2
3
4
5
6
7
8
9
10
a_map[id].insert( rated_filename_type(0, "1") );
    a_map[id].insert( rated_filename_type(1, "2") );
    a_map[id].insert( rated_filename_type(1, "3") );
    a_map[id].insert( rated_filename_type(11, "4") );
    a_map[id].insert( rated_filename_type(0, "5") );
    a_map[id].insert( rated_filename_type(11, "6") );
    a_map[id].insert( rated_filename_type(0, "7") );
    a_map[id].insert( rated_filename_type(2, "8") );
    a_map[id].insert( rated_filename_type(2, "9") );
    a_map[id].insert( rated_filename_type(11, "10") ) ;
так выдает 6 штук

C++
1
2
3
4
5
6
7
8
9
10
a_map[id].insert( rated_filename_type(0, "1") );
    a_map[id].insert( rated_filename_type(1, "2") );
    a_map[id].insert( rated_filename_type(1, "3") );
    a_map[id].insert( rated_filename_type(11, "4") );
    a_map[id].insert( rated_filename_type(2, "5") );
    a_map[id].insert( rated_filename_type(11, "6") );
    a_map[id].insert( rated_filename_type(2, "7") );
    a_map[id].insert( rated_filename_type(0, "8") );
    a_map[id].insert( rated_filename_type(0, "9") );
    a_map[id].insert( rated_filename_type(11, "10") ) ;
а так 4
разъясните мне, пожалуйста, что это такое вообще?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
27.12.2012, 16:31
Попробовал на досуге забить таблицы полностью:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#define BYTE_0_15_TO_BIN_FSTR _T("%d%d%d%d")
#define BYTE_0_15_TO_BIN(byte)  \
  (byte & 0x08 ? 1 : 0), \
  (byte & 0x04 ? 1 : 0), \
  (byte & 0x02 ? 1 : 0), \
  (byte & 0x01 ? 1 : 0)
 
typedef std::multimap <double, String> rated_files_type;
typedef std::map <String, rated_files_type> combinations_type;
typedef std::pair <double, String> rated_filename_type;
combinations_type a_map;
String id[16];
// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1( TComponent *Owner )
               : TForm( Owner ) {
    TCHAR buff[10];
    srand( time( NULL ) );
    for ( int i = 0; i < 16; ++i ) {
        wsprintf( buff, BYTE_0_15_TO_BIN_FSTR, BYTE_0_15_TO_BIN( i ) );
        id[i] = buff;
        for ( size_t k = 0; k < 10; ++k ) {
            a_map[id[i]].insert( rated_filename_type(
                    ( rand( ) % 1000 ) / 10.0,
                    String( rand( ) % 10 ) ) );
        }
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::btn1Click( TObject *Sender ) {
    rated_files_type::iterator it, end;
 
    for ( size_t i = 0, k; i < 16; ++i ) {
        it = a_map[id[i]].end( );
        end = a_map[id[i]].begin( );
        memo->Lines->Add( id[i] + ":\n" );
        for ( k = 0, --end; --it != end; ++k ) {
            memo->Lines->Add( String( k ) + ".\t" + String( it->first ) + " - " + it->second + "\n" );
        }
    }
}
// ---------------------------------------------------------------------------
Все работает на ура, попробуй этот код, кто его знает...
Есть еще подозрение, что в твоей версии stl другая реализация multimap и она изрядно глючит. Какой билдер?
Миниатюры
Охарактеризовать объект по каким-либо признакам его строения  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.12.2012, 16:31
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
220
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает. В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше. Перед запуском проверяем. . .
Модель здравоохранения 13. Добавление самой системы здравоохранения.
anaschu 22.05.2026
В предыдущем посте мы настроили болезни. Теперь добавим события, которые управляют здоровьем всего коллектива, а также настроим рабочий график и расчёт финансов. В Main создаём четыре события. . . .
Модель здравоохранения 12. добавление болезней через ресурпул, как аварии
anaschu 22.05.2026
Болезни — это ключевая часть нашей модели. Нам нужно, чтобы работник периодически уходил на больничный, его задание при этом зависало, а после выздоровления работа возобновлялась. Реализуем это двумя. . .
Модель здравоохранения 11. Создаём классы Задание и Работник
anaschu 22.05.2026
В AnyLogic каждая заявка и каждый ресурс — это объект определённого класса. Нам нужно создать два класса: Задание (заявка) и Работник (ресурс). Класс Задание В дереве проекта нажимаем правой. . .
Модель здравоохранения 10. Новая модель, смотрим, как добавлять логические блоки, и что писать внутри
anaschu 22.05.2026
Открываем AnyLogic, создаём новый проект. В дереве проекта появляется класс Main — это главный агент, в котором будет жить вся наша логика. Палитра блоков Слева находится палитра. Нас интересует. . .
модель ЗдравоСохранения 9. Новая модель, разбираемся, как ее создавать
anaschu 22.05.2026
В этой серии постов мы построим модель небольшого рабочего коллектива. Сотрудники получают задания, выполняют их, иногда болеют — и мы хотим посчитать, сколько это стоит компании. Метод. . .
[golang] Linked list
alhaos 22.05.2026
Связный список / Linked list Связный список структура данных позволяющая хранить список значений, в отличии от массива в памяти хранится не сплошным куском, а отдельными частями которые ссылаются. . .
[golang] Двоичная куча, min-heap
alhaos 20.05.2026
Двоичная куча Двоичная куча — структура данных, которая всегда держит самый важный элемент наготове. Представьте очередь к хилеру в игре, и очередь из игроков в приоритете те у кого меньше. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru