Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2010, 20:41   #1
Cerebrum
Пользователь
 
Регистрация: 21.03.2009
Сообщений: 24
По умолчанию Проблемы с суммированием...либо еще с чем...сам не пойму(

В общем стоит передо мной цель простая: выявить направленность методом МНК тел(кластеров) на изображении.
Метод МНК взял тут. Из формул (8) и (9) считается а и b.

Вот кусочек где происходит рисование самого объекта и суммирование х,у,ху и x2 для каждого из объетов. Qt показывает количество пикселей в объекте, причем считает правильно, а значит и суммировать должно правильно.

Код:
for i:=0 to wid-1 do
    for j:=0 to heig-1 do begin
.......................................................
      if (min1=0) or (min2=0) or (min3=0) or (1/min1+1/min2+1/min3>4/sqr(r0)) then begin
        bmklast.Canvas.Pixels[i,j]:=RGB(klast[otpec[nmin].nomklast].cvet.ri,klast[otpec[nmin].nomklast].cvet.gi,klast[otpec[nmin].nomklast].cvet.bi);
        klast[otpec[nmin].nomklast].qt:=klast[otpec[nmin].nomklast].qt+1;
        klast[otpec[nmin].nomklast].sumx:=klast[otpec[nmin].nomklast].sumx+i;
        klast[otpec[nmin].nomklast].sumy:=klast[otpec[nmin].nomklast].sumy+j;
        klast[otpec[nmin].nomklast].sumxy:=klast[otpec[nmin].nomklast].sumxy+i*j;
        klast[otpec[nmin].nomklast].sumx2:=klast[otpec[nmin].nomklast].sumx2+i*i;
      end
      else bmklast.Canvas.Pixels[i,j]:=clwhite;
  end;
Затем выразив а и b из формул (8) и (9) (перепроверил раза 3 выражения)считаю направленность:
Код:
for i:=1 to qkl do begin
    klast[i].bnap:=(klast[i].sumxy-((klast[i].sumy*klast[i].sumx2)/klast[i].sumx))/(klast[i].sumx-((klast[i].sumx2*klast[i].qt)/klast[i].sumx));
    klast[i].anap:=(klast[i].sumy-klast[i].qt*klast[i].bnap)/klast[i].sumx;
  end;
Но в итоге что-то коряво выходит...для горизонтально направленных объектах вроде как норм, а вот с вертикальными проблема. у sumx,sumy и т.д. сделал тип даже int64 и ничего(...все тоже...прикрепил результат на простой картинке...черными линиями указан результат построения методом МНК линий...Нижнее правое изображение нив какие ворота не лезут...
взываю о помощи...
Изображения
Тип файла: jpg 1.jpg (39.6 Кб, 85 просмотров)
Cerebrum вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите! Не пойму, в чем дело... Baharev БД в Delphi 7 07.12.2009 19:18
не пойму в чем ошибка Анастасия123456789 Помощь студентам 3 23.03.2009 15:53
Не пойму в чем ошибка Machete PHP 2 08.12.2008 10:09
В чем дло с USB не пойму? Ol'ga Компьютерное железо 3 26.06.2008 11:12