| 
| 
 | Вопрос # 6 116/ вопрос открыт / | 
 |  Здравствуйте!вопрос по Сглаживание контуров объектов полутоновых изображений
 есть код вот снизу, посмотрите пожалуйста и если есть возможность скиньте исходник по код, а то что то совсем не получается с этой функцией
 
  Result:=TByteMap.Create(bm.Canals);
  Result.Width:=bm.Width;
  Result.Height:=bm.Height;
  p:=Result.ScanLine[1];
  p1:=bm.ScanLine[0];
  p2:=bm.ScanLine[1];
  p3:=bm.ScanLine[2];
  LL:=bm.LineLen;  //Длина в байтах между линиями
  uf:=bm.Canals;
  LL1:=uf*bm.Width-uf;
   for j:=1 to bm.Height-2 do
    begin
    i:=uf;
    while i<LL1 do
     begin
     //Собель
     c:=SQRT_Table[(sqr((p1[i-uf]-p1[i+uf])+        // SQRT_Table таблица корней для ускорения рассчета корня
                      2*(p2[i-uf]-p2[i+uf])+        //По строкам
                        (p3[i-uf]-p3[i+uf])) +
                    sqr((p1[i-uf]-p3[i-uf])+        // По столбцам
                         2*(p1[i]-p3[i])+
                        (p1[i+uf]-p3[i+uf]))
                        +1)shr 5];//+1 для уточнения рассчетов
        if c>T then  // T порог
          begin //Точка принадлежит контуру  
          p[i]:=(1*p1[i-uf]+2*p1[i-uf]+1*p1[i-uf]+
                 2*p2[i-uf]+4*p2[i-uf]+2*p2[i-uf]+ //Blur - сглаживание
                 1*p3[i-uf]+2*p3[i-uf]+1*p3[i-uf])
                 shr 4;
          end else
          begin
          p[i]:=p2[i]; // Не контур оставляем как есть.
          end;
      inc(i);
      end;
    inc(p,LL);
    inc(p1,LL);
    inc(p2,LL);
    inc(p3,LL);
    end;
|  |   Вопрос задал: casio (статус: Посетитель)Вопрос отправлен: 6 мая 2012, 13:01
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 0. 20 июня 2012, 21:06: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Графика (2D и 3D) в приложениях модератором Ерёмин А.А. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |