imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 12.05.2006, 10:22     # 1
SteFF
Junior Member
 
Аватар для SteFF
 
Регистрация: 27.01.2005
Адрес: Пенза-City
Сообщения: 68

SteFF Путь к славе только начался
Метод медианной фильтрации

Пожалуйста помогите сделать вот такое задание:
Разработать программу сглаживания экспериментальных данных по методу медианной фильтрации, суть которого заключается в том, что значение каждого элемента массива Yi заменяется на среднее по величине значение из ряда Yi-1, Yi и Yi+1. Использовать функции ввода данных, сглаживания, вывода результатов.
Это надо сделать в Visual C++ 6.0, в которой я ничего не понимаю.. надеюсь - пока.
Помогите пожалуйста кто может!! Буду очень благодарен!
SteFF вне форума  
Старый 12.05.2006, 12:26     # 2
_Lynx_
Junior Member
 
Регистрация: 11.10.2005
Сообщения: 63

_Lynx_ Путь к славе только начался
Вообще-то суть немного другая:
http://www.chip-news.ru/archive/chipnews/199908/29.html

Тогда:
Цитата:
vector<float> input_arr, output_arr;
//Заполняем входной массив
for (...) {
input_arr.push_back(f);
}
int len=input_arr.size();
for(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);
output_arr.push_back(g);
}
...
_Lynx_ вне форума  
Старый 12.05.2006, 19:17     # 3
SteFF
Junior Member
 
Аватар для SteFF
 
Регистрация: 27.01.2005
Адрес: Пенза-City
Сообщения: 68

SteFF Путь к славе только начался
А можно с каментариями плз.

Что такое: f,g,push_back, и еще если можно строку g=(a1>a2)... объясни.
SteFF вне форума  
Старый 14.05.2006, 17:10     # 4
Rundll
Junior Member
 
Аватар для Rundll
 
Регистрация: 02.11.2003
Адрес: г. Таганрог
Сообщения: 63

Rundll Путь к славе только начался
С позволения _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);//Здесь я думаю всё ясно
}
...

//Дерзай
__________________
Америка, Америка - это красиво, но Россия вот где есть СИЛА!!!

Последний раз редактировалось Rundll; 14.05.2006 в 17:13.
Rundll вне форума  
Старый 15.05.2006, 00:01     # 5
SteFF
Junior Member
 
Аватар для SteFF
 
Регистрация: 27.01.2005
Адрес: Пенза-City
Сообщения: 68

SteFF Путь к славе только начался
Цитата:
Rundll:
если результат == true, тогда результат=выражение1
иначе - результат=выражение2
Только тут кажется вместо результат должно быть выражение.

Пасибо. ЩАс вот поставил VC++.. мож че и выйдет )
Буду стараться
SteFF вне форума  
Старый 15.05.2006, 17:56     # 6
Rundll
Junior Member
 
Аватар для Rundll
 
Регистрация: 02.11.2003
Адрес: г. Таганрог
Сообщения: 63

Rundll Путь к славе только начался
Да, очепатался
__________________
Америка, Америка - это красиво, но Россия вот где есть СИЛА!!!
Rundll вне форума  
Старый 16.05.2006, 22:51     # 7
SteFF
Junior Member
 
Аватар для SteFF
 
Регистрация: 27.01.2005
Адрес: Пенза-City
Сообщения: 68

SteFF Путь к славе только начался
Вопрос:
Как мне построчно читать из Edit'а (в Visual C++) числа (в каждой строке одно число) и записывать их в массив, колво элементво которого = количеству строк в Edit'е.

2Visual C++, у меня слов нет: какой ты странный... брррр
SteFF вне форума  
Старый 17.05.2006, 12:05     # 8
_Lynx_
Junior Member
 
Регистрация: 11.10.2005
Сообщения: 63

_Lynx_ Путь к славе только начался
textBox.Text
_Lynx_ вне форума  
Старый 17.05.2006, 19:01     # 9
SteFF
Junior Member
 
Аватар для SteFF
 
Регистрация: 27.01.2005
Адрес: Пенза-City
Сообщения: 68

SteFF Путь к славе только начался
Ничего не получается.. в списке нету Text.
Я объявляю какунить переменную типа:
char a[20];
a=m_Edit1. {тут ничего подобного на TExt не возникает}
SteFF вне форума  
Старый 17.05.2006, 22:24     # 10
SteFF
Junior Member
 
Аватар для SteFF
 
Регистрация: 27.01.2005
Адрес: Пенза-City
Сообщения: 68

SteFF Путь к славе только начался
Ничерта не получается..
Завтра собирался сдавать.. в пятницу уже уезжаю.. в воскресенье уже вылет... так что - пипец..

ПОмогите пожалуста!! Очень прошу!!!
Я создал форму.
Осталось только чтоб при нажатии на кнопку1 заполнялся ListBox1 случайными числами и соответственно - массив.
При нажатии на вторую кнопку этот массив сортировался.. и выводился в ListBox2.
Очень прошу. Помогите!!


Я MFC использую... это чтото меняет?
Вложения
Тип файла: rar 3_1.rar (19.2 Кбайт, 5 просмотров - Кто скачивал? )
SteFF вне форума  
Старый 18.05.2006, 13:13     # 11
_Lynx_
Junior Member
 
Регистрация: 11.10.2005
Сообщения: 63

_Lynx_ Путь к славе только начался
Что-то вроде
Код:
vector<int> input_arr, output_arr;
======
void CMy3_1Dlg::OnAddBut() 
{
	char buf[20];
	input_arr.clear();
	m_WasList.DeleteAllItems();
//Заполняем массив
	for(int i=0;i<10;i++){
		input_arr.push_back(i);
		itoa(i,buf,10);
		m_WasList.InsertItem(i,buf);
	}
}

void CMy3_1Dlg::OnSortBut() 
{

      /* Как-то сортируем */

	output_arr.clear();
	m_NowList.DeleteAllItems();
	char buf[20];
	int len=output_arr.size();
	for(int i=0;i<len;i++){
		itoa(output_arr[i],buf,10);
		m_NowList.InsertItem(i,buf);
	}
}
_Lynx_ вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 11:43.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.