![]() |
Метод медианной фильтрации
Пожалуйста помогите сделать вот такое задание:
Разработать программу сглаживания экспериментальных данных по методу медианной фильтрации, суть которого заключается в том, что значение каждого элемента массива Yi заменяется на среднее по величине значение из ряда Yi-1, Yi и Yi+1. Использовать функции ввода данных, сглаживания, вывода результатов. Это надо сделать в Visual C++ 6.0, в которой я ничего не понимаю.. надеюсь - пока. Помогите пожалуйста кто может!! Буду очень благодарен! :молись: |
Вообще-то суть немного другая:
http://www.chip-news.ru/archive/chipnews/199908/29.html Тогда: Цитата:
|
А можно с каментариями плз.
:молись: Что такое: f,g,push_back, и еще если можно строку g=(a1>a2)... объясни. :idontnow: |
С позволения _LYNX_, я допишу комментарий к его программе :)
Надеюсь я не нарушу его авторских прав :) vector<float> input_arr, output_arr; /*входной и выходной вектор (массив), способный изменять количество элементов, во время выполнения программы, см. подробнее STL */ //Заполняем входной массив for (...) { input_arr.push_back(f); /*функция push_back, является функцией-членом класса vector, и добавляет в конец вектора новый элемент f.*/ } int len=input_arr.size(); /*size - также является функцией-членом класса vector и определяет размер вектора*/ for(int i=0;i<len+2;++i){ int a1=0, a2=0, a3=0, g; if(i>1)a1=input_arr[i-2]; if(i>0&&i<len+1)a2=input_arr[i-1]; if(i<len)a3=input_arr[i]; /*Надеюсь выше всё понятно :)*/ g=(a1>a2)?((a3>a1)?a1a3>a2)?a3:a2)(a3>a2)?a2a3>a1)?a3:a1); /*А в этой строке переменной g присваивается значение, вычисляемое на базе логических сравнений. оператор '?' трактуется следующим образом: "если выражение (a1>a2) истино, тогда переменной g присвоить значение находящееся до символа ':', если выражение ложно - после символа ':' " Короче говоря: результат = выражение ? выражение1 : выражение2 если результат == true, тогда результат=выражение1 иначе - результат=выражение2 ИМХО очень удобная конструкция!*/ output_arr.push_back(g);//Здесь я думаю всё ясно } ... //Дерзай :cool: |
Цитата:
Пасибо. ЩАс вот поставил VC++.. мож че и выйдет :)) Буду стараться ;) :yees: |
Да, очепатался :)
|
Вопрос:
Как мне построчно читать из Edit'а (в Visual C++) числа (в каждой строке одно число) и записывать их в массив, колво элементво которого = количеству строк в Edit'е. :confused: 2Visual C++, у меня слов нет: какой ты странный... :idontnow: брррр |
textBox.Text
|
Ничего не получается.. в списке нету Text.
Я объявляю какунить переменную типа: char a[20]; a=m_Edit1. {тут ничего подобного на TExt не возникает} :confused: |
Вложений: 1
Ничерта не получается..
Завтра собирался сдавать.. в пятницу уже уезжаю.. в воскресенье уже вылет... так что - пипец.. :молись: ПОмогите пожалуста!! Очень прошу!!! Я создал форму. Осталось только чтоб при нажатии на кнопку1 заполнялся ListBox1 случайными числами и соответственно - массив. При нажатии на вторую кнопку этот массив сортировался.. и выводился в ListBox2. Очень прошу. Помогите!! :молись: :молись: :молись: Я MFC использую... это чтото меняет? :idontnow: |
Что-то вроде
Код:
vector<int> input_arr, output_arr; |
| Часовой пояс GMT +4, время: 09:57. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.