|
Вопрос # 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) в приложениях модератором Ерёмин А.А.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|