powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Эйнтховин
12 сообщений из 12, страница 1 из 1
Эйнтховин
    #37497731
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дяди, случаино не укого нет программы которая по экг построит треугольник Эйнтховина ?
http://www.diabet-gipertonia.ru/ekg/06_standartnye_otvedenija.html
Буду признательна если кто-то мне поможет, оболочка не важна. В чем напишите в том и будет, просто на бумаги слишком грустно(
...
Рейтинг: 0 / 0
Эйнтховин
    #37497770
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mash6a,

0) В каком формате сами данные кардиограммы?
1) Возможно, я ошибаюсь, но вроде как в наше время кардиограмма снимается отнюдь не тремя электродами и реальные аппараты имеют встроенные фильтры шумов, которые могут рехнуться, если попытаться задействовать всего три контакта.
...
Рейтинг: 0 / 0
Эйнтховин
    #37497791
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну чтбы построить этот треугольник нам нужна кардиограмма
http://www.megabook.ru/MObjects2/DATA4/pic/phi0214l.jpg Не важно откуда она, она есть. из нее берем размер зубца R Который нам машина посчитает. а потом на треугольнике нанлсим зубцы
http://medarticle.moslek.ru/images/40726.jpg
потом можем полоучить вектор, нам он и нужен.
...
Рейтинг: 0 / 0
Эйнтховин
    #37497822
ИринаВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mash6a , не. Если нет цифровой записи кардиограммы, то как вводить посл-ность величин R? Не мерить жеж каждый? Но и по записи, выделить именно зубец R, это уже задача: частота отсчетов в записи пор. 1000 гц (ИМХО), помехи-наводки-провалы. Канеш можно, но не задней ногой между делом.
Формулу написать не сложно, а если готовую прогу, то это вполне себе серьезная работа.
...
Рейтинг: 0 / 0
Эйнтховин
    #37498315
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, я не прошу написать принципиально новое ПО. Я прошу помочь мне выделить R зубец http://www.cardioagent.ru/uploads/articles122.jpg и найти его значение, если нам дана кардиограмма первого и последующих отведениию
...
Рейтинг: 0 / 0
Эйнтховин
    #37499135
ИринаВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык в каком виде кардиограмма? Картинка?
...
Рейтинг: 0 / 0
Эйнтховин
    #37499319
Gust2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mash6a,

К сожалению, с времен обсуждения Экосаэдра так ничего и не изменилось...
...
Рейтинг: 0 / 0
Эйнтховин
    #37502221
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gust2002,

Ага, ты как был занудой так и остался! И экосаидер тут не причем. Е
...
Рейтинг: 0 / 0
Эйнтховин
    #37503535
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mash6a,

мы тут все зануды - пока не поймём суть... Вам же Ирина сказала, ЧТО требуется изначально.
...
Рейтинг: 0 / 0
Эйнтховин
    #37503830
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот есть такое ЭКГ! Мне надо найти из него значение R-зубца. Как это сделать ? а формулу сама написала.
...
Рейтинг: 0 / 0
Эйнтховин
    #37504244
ИринаВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу. Знач так. Берем bitmap (24 бита), грузим картинку
Код: plaintext
1.
2.
EkgBmp:=TBitmap.Create;
EkgBmp.LoadFromFile(....)
Если jpg, то грузим через JpegImage
Код: plaintext
1.
2.
3.
4.
5.
jpg:=TJpegImage.Create;
jpg.LoadFromFile(....);
jpg.DIBNeeded;
EkgBmp.Assign(jpg);
jpg.Free;
Считаем макс. и мин. яркость (квадраты)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
x,y: Integer;
br,brmin,brmax: Real
scn: PByteArray;
......
brmin:= 1000000000 ; brmax:= 0 ;
 for  y:= 0   to  EkgBmp.Height- 1   do   begin 
  scn:=EkgBmp.ScanLine[y];
   for  x:= 0   to  EkgBmp.Width- 1   do   begin 
    br:=scn[ 3 *x]*scn[ 3 *x]+scn[ 3 *x+ 1 ]*scn[ 3 *x+ 1 ]+scn[ 3 *x+ 2 ]*scn[ 3 *x+ 2 ];
    brmin:=Min(brmin,br);
    brmax:=Max(brmax,br);
   end ;
 end ;
Из brmin,brmax берем порог brlim:=brmin+(brmax-brmin)*v, где v эмп. коэфф., порядка 0.2 .. 0.3. Если слишком маленький, то пропуски, если большой, то шум. Опять, сканируем
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
ekg1,ekg2:  array  [...]  of  Integer;
firstx,lastx: Integer;

 for  x:= 0   to  High(ekg1)  do   begin 
  ekg1[x]:= 0 ;
  ekg2[x]:= 0 ;
 end ;
firstx:= 1000000 ;
lastx:= 0 ;
 for  y:= 0   to  EkgBmp.Height- 1   do   begin 
  scn:=EkgBmp.ScanLine[y];
   for  x:= 0   to  EkgBmp.Width- 1   do   begin 
    br:=scn[ 3 *x]*scn[ 3 *x]+scn[ 3 *x+ 1 ]*scn[ 3 *x+ 1 ]+scn[ 3 *x+ 2 ]*scn[ 3 *x+ 2 ];
     if  br<brlim  then   begin 
      ekg1[x]:=y;
       if  ekg2[x]= 0   then  ekg2[x]:=y;
      firstx:=Min(firstx,x);
      lastx:=Max(lastx,x);
     end ;
   end ;
 end ;
Берем среднее, это ЭКГ
Код: plaintext
1.
 for  x:= 0   to  High(ekg1)  do  ekg1[x]:=(ekg1[x]+ekg2[x])/ 2 ;
Максимум и минимум, в этом массиве, это R и S. А среднее (ekg1[firstx]+ekg1[lastx])/2 это изолиния.
Всио.

Кста можно и красненькие меточки получить, если поднять контраст
...
Рейтинг: 0 / 0
Эйнтховин
    #37505899
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ирина Ты Великолепна! Офигительный код! Все сделала, строит треугольник, выбирает значения! Все робит прекрасно! Ирина Огромное Спасибо! Вы Прекрасны!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Эйнтховин
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]