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

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

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

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

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

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

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

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

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

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

222
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
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
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru