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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2012, 18:38   #11
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
По умолчанию

Можете пожалуйста любой пример привести, а то я чатал много статей, там всякие формулы, а как ими распорядится не вдупляю
Мудр тот, кто знает нужное, а не многое.

Arsenx777 вне форума Ответить с цитированием
Старый 19.01.2012, 11:07   #12
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Могу привести выдержку из кода одной старой своей программы
Код:
type:
{изображение представлено в виде матрицы (двумерного массива)}
TImageMatrix = array of array of TMatrixValue;
{каждый элемент масссива может быть пустым или сигнальным (черные и белые пиксели)}
TMatrixValue = (mvSpace = 0,mvSignal = 1);

{r,c - это Row (строка) и Column (столбец) элемента матрицы, для которого мы хотим узнать значение
 ImageMatrix - это сама матрица изображения
 если в матрице нет такого столбца или строки, то функция посчитает элемент пустым 
 (считаем, что наше изображение лежит в центре бесконечного пустого пространства)}
function GetMatrixPoint(r,c: integer; ImageMatrix: TImageMatrix): TMatrixValue;
begin
  if (c < 0) or (c >= length(ImageMatrix))
   then result:=mvSpace
  else if (r < 0) or (r >= length(ImageMatrix[0]))
   then result:=mvSpace
  else result:=ImageMatrix[c,r];
end;  

{возвращает "вес" пикселя, расположенного по координатам [r;c], где r - строка, а c - столбец, то есть
 количество сигнальных пикселей, окружающих его.
 IsCross: если установлено в true, то учитываются только пиксели сверху,снизу, и по бокам (диагональные идут лесом)
}
function GetMatrixPointWeight(r,c: integer; ImageMatrix: TImageMatrix; IsCross: boolean = false): integer;
begin
   result:=0;
   if (not IsCross) then
   begin
     result:=Result+Integer(GetMatrixPoint(r-1,c-1, ImageMatrix));
     result:=Result+Integer(GetMatrixPoint(r+1,c+1, ImageMatrix));
     result:=Result+Integer(GetMatrixPoint(r+1,c-1, ImageMatrix));
     result:=Result+Integer(GetMatrixPoint(r-1,c+1, ImageMatrix));
   end;

   result:=Result+Integer(GetMatrixPoint(r-1,c, ImageMatrix));
   result:=Result+Integer(GetMatrixPoint(r,c-1, ImageMatrix));
   result:=Result+Integer(GetMatrixPoint(r,c+1, ImageMatrix));
   result:=Result+Integer(GetMatrixPoint(r+1,c, ImageMatrix));
end;

{Функция, выполняющая эрозию матрицы изображения.
 Sensitivity - пороговое значение. Если число сигнальных пикселей вокруг указанного
 будет меньше, чеи пороговое, то указанный пиксель будет считаться пустым  
 IsCross: если установлено в true, то учитываются только пиксели сверху,снизу, и по бокам (диагональные идут лесом)
 ImageMatrix: обрабатываемая матрица
 Вернёт матрицу, к которой применена эрозия
}
function Erode(Sensitivity: integer; IsCross: boolean;
                                         ImageMatrix: TImageMatrix): TImageMatrix;
var i,r,c: integer;
    outimg: TImageMatrix;
begin
  SetLength(outimg,Length(ImageMatrix));
  for i:=0 to Length(ImageMatrix)-1 do
    SetLength(outimg[i],Length(ImageMatrix[0]));

  for r:=0 to length(ImageMatrix[0])-1 do
  for c:=0 to length(ImageMatrix) -1 do    
    if (GetMatrixPoint(r,c,ImageMatrix) = mvSignal) AND
       (GetMatrixPointWeight(r,c,ImageMatrix,IsCross) >= Sensitivity)
      then outimg[c,r]:=mvSignal;
  result := outimg;
end;
Благодарить в репутацию. Проклинать — туда же

Последний раз редактировалось Luuzuk; 19.01.2012 в 11:30.
Luuzuk вне форума Ответить с цитированием
Старый 19.01.2012, 17:49   #13
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
По умолчанию

спсибо большое)
Мудр тот, кто знает нужное, а не многое.

Arsenx777 вне форума Ответить с цитированием
Старый 18.03.2012, 17:37   #14
suzanna_molodets
Новичок
Джуниор
 
Регистрация: 20.02.2012
Сообщений: 2
По умолчанию

код на делфи реализованного алгоритма математической морфологии у кого-нибудь есть?
suzanna_molodets вне форума Ответить с цитированием
Старый 18.03.2012, 17:40   #15
suzanna_molodets
Новичок
Джуниор
 
Регистрация: 20.02.2012
Сообщений: 2
По умолчанию

еще нужен метод на основе вейвлет-преобразования. это для устранения шумов на изображении!
помогите с кодом,пожалуйста!
suzanna_molodets вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
избавление от for,copy и delete Work Group Помощь студентам 0 08.12.2009 13:42
Избавление от неприятных звуков БуреВестник Microsoft Office Word 2 24.10.2009 15:06
Довольны ли вы уровнем шума своего ПК? _dx Компьютерное железо 31 04.07.2009 23:02
ГСЧ на основе шума. RomanIgorevi4 Общие вопросы C/C++ 0 04.06.2009 22:16