Программа пороговой обработки изображения

 

Содержание


Задание на курсовую работу

Введение

1. Разработка алгоритма решения задачи

1.1 Методы пороговой сегментации

1.2 Блок схема алгоритма программы

2. Разработка интерфейса программы

2.1 Загрузка и фильтрация изображения с выбранным порогом

2.2 Поиск объекта на бинарном изображении

Заключение

Список литературы

Приложение


Задание на курсовую работу


Разработать программу пороговой обработки изображения.

Изображение должно загружаться из BMP файла и переносится на канву программы. После чего нужно произвести фильтрацию с выбранными порогом (вручную или автоматически) и получить бинарное изображение.

Выходной файл должен содержать: дату и время запуска программы, имя файла, содержащего изображение, его разрешение, результат работы программы. Формат выходного файла - текстовый. Пользователь должен иметь возможность выбора: сохранять ли результаты в файл или нет. Принцип задания имени выходного файла определяется самим пользователем.


Введение


Цифровая обработка изображений на сегодняшний момент быстро развивающаяся область науки и техники.

Задачи цифровой обработки изображений можно разделить на две основные категории:

.К первой категории относятся задачи, связанные с обработкой отдельных статических изображений, например ретуширование фотографий, анализ рентгеновских снимков, распознавание текста. Для решения задач, относящихся к этой категории, служат известные и широко распространенные методы пространственной обработки изображений, включающие двумерную линейную и нелинейную фильтрацию, гистограммные преобразования, методы статистической сегментации, методы распознавания двумерных образов.

.Задачи, в которых исходным материалом для обработки служат последовательности изображений. Среди задач, относящихся к этой категории, можно выделить сжатие и передачу видеоинформации, обнаружение движущихся объектов, автоматическое управление роботами.

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


1. Разработка алгоритма решения задачи


1.1 Методы пороговой сегментации


В этой работе рассматриваются операции, осуществляемые в пространственной области над пикселями цифрового изображения с целью представления его в виде бинарной матрицы. Данные операции носят название пороговой обработки изображений, поскольку основывается на предварительном выборе требуемого порога (порогов) яркости, на основании которых осуществляется бинаризация.

Под сегментацией понимают разбиение изображения на некоторые однородные области или объекты. Часто используемый при этом метод пороговой обработки основывается на анализа гистограмм яркостей. Популярное предположение состоит в том, что изображение содержит известное число однородных по яркости классов точек, то есть таких классов, распределение вероятностей яркостей которых унимодальны. Кроме того, считается, что граничные участки между замкнутыми областями занимают сравнительно небольшую площадь изображения. Поэтому на гистограмме им должны соответствовать межмодовые впадины, в которых устанавливаются пороги сегментации.

К сожалению, изображения реальных сцен плохо удовлетворяют таким предположениям. Как правило, границы между областями на изображении размыты. Поэтому модальная структура гистограммы выражена недостаточно, а уровень мод оказывается сравним с уровнем шума на гистограмме. Кроме того, часто, когда гистограмма имеет различные моды, оказывается трудным точно локализовать дно впадин из-за того, что они широкие и плоские.

Существует множество различных методов сегментаций изображений, ориентированных в основном на случай отделения объекта от фона, использующих в частности, методы выделения границ объектов, методы выделения однородных по текстуре участков изображения и т.п.


1.2 Блок схема алгоритма программы


Общая блок схема алгоритма программы представлена на рис. 1, которая состоит из семи блоков. Более подробная блок схема алгоритма блока 2 и 3 представлена на рис. 2 и рис. 3(а,б) соответственно. В блоке 5 происходит поиск объекта на бинарном изображении, в области поиска, выделенной пользователем.



На рис. 2 представлена блок схема алгоритма второго блока. В нем происходит образование матрицы из яркости пикселей, загруженного изображения.



На рис. 3(а,б) представлена блок схема алгоритма третьего блока. В нем происходит выбор порогового значения и фильтрация изображения с выбранным порогом. После фильтрации происходит образование новой матрицы из полученных значений яркостей.



В случае автоматического подбора порога фильтрации (с возможностью его инвертации в случае получения неудовлетворительного результата) блок схема алгоритма выглядит следующим образом (рис.3(б)):


2. Разработка интерфейса программы


Программа состоит из трех форм (Form):

Form1 - Рабочая среда (рис. 5)

Form2 -Титульный лист (рис. 4)

В программе задействовано 45 процедур.


Рис.4


После запуска программы появляется первая форма (рис. 4), которая является заставкой этой работы, и несет информацию о разработчике и о теме курсовой работы. Через 5 секунд появляется активная кнопка внизу формы, с названием "Перейти к программе", по нажатию которой появится рабочая среда программы (рис. 5).


Рис.5


Кнопка "Открыть изображение" предназначена для загрузки изображения с помощью диалогового окна.

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


.1 Загрузка и фильтрация изображения с выбранным порогом


При нажатии кнопки "открыть изображение" пользователю предоставляется возможность выбора BMP файла, содержащего изображения (рис. 6).


Рис.6


В области "цветовой порог" пользователь может выбрать порог обработки изображения, сравнивая этот порог с соответственными цветовыми значениями, расположенные над полосой выбора порога, либо с помощью кнопок "автоматически подобать порог" и "обработка авто порогом", а также флажка "инвертировать порог" (в случае неудовлетворительного результат автоматического подбора порога) программа автоматически подберет порог фильтрации.

При нажатии кнопки "пороговая обработка" программа создаст бинарное изображение, исходного изображения с выбранным порогом обработки, а при нажатии кнопки "автоматически подобрать порог", пользователю предоставится возможность выделить область, на которой он будет искаться. После выделения и по нажатию кнопки "обработка авто порогом", программа создаст изображение с автоматически подобранным порогом (рис. 7).


Рис.7


2.2 Поиск объекта на бинарном изображении


После фильтрации изображении выбранным порогом(автоматически или вурчную) появляется новая панель, на которой расположены компоненты необходимые для задания параметров объекта и области поиска этого объекта на бинарном изображении.

При нажатии на кнопку "выделить область" пользователь может самостоятельно выделить интересующую его область изображения (рис. 8).

Рис.8


После ввода значений размера объекта и выделения области поиска кнопкой "закончить выделение" пользователь сможет воспользоваться кнопкой "определить объект". После чего программа найдет все возможные объекты в выделенной области, соответствующие введенным размерам объекта (рис. 9).


Рис.9

Результаты работы программы будут выведены в многострочное поле. После этого пользователю станет доступным пункт главного меню "файл - сохранить результаты", в диалоговом окне которого можно будет выбрать имя файла и директорию для него.

Сохраненный текстовый файл будет иметь следующий вид (рис. 10).


Рис.10


В меню "вид" можно изменить цвет фона канвы и двух нижних панелей.


Заключение


В результате выполнения данной курсовой работы была разработана программа, обрабатывающая изображение выбранным порогом (автоматически или вручную) и определяющая местоположения объекта на бинарном изображении. Было проведено исследование компонентов программной среды Borland Turbo Delphi, которые могут использоваться для создания подобного рода программ.

Созданная программа имеет возможность выделения области поиска объекта на бинарном изображении, с последующим ее анализом. В результате программы итоговая информация сохраняется в текстовый файл, имя которого выбирает сам пользователь.

пороговый сегментация программа изображение

Список литературы


)Селяев А.А. "Конспект лекций по ПиОА";

)Селяев А.А. "Обзор и часть диплома";

3)#"justify">Приложение

Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ComCtrls, jpeg, ExtCtrls, MPlayer, StdCtrls;= class(TForm): TImage;: TMediaPlayer;: TTimer;: TLabel;FormActivate(Sender: TObject);Timer1Timer(Sender: TObject);Label1MouseMove(Sender: TObject; Shift: TShiftState; X,: Integer);Label1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;Unit2;

{$R *.dfm}: integer; // секундыTForm1.FormActivate(Sender: TObject);.Play;.Timer1.Enabled:=True;TForm1.Timer1Timer(Sender: TObject);:=sec+1;sec=5 then label1.show;(sec mod 2) = 1begin label1.Font.color:=clGreen; label1.Color:=ClYellow; endbegin label1.Font.color:=clYellow;label1.Color:=clgreen ; end;;TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,: Integer);.Cursor:=crHandPoint;TForm1.Label1Click(Sender: TObject);.show;.Hide;.Stop;.Enabled:=False;;.Unit2;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Menus, StdCtrls, ExtDlgs,math, ExtCtrls,shellapi;= class(TForm): TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TSaveDialog;: TLabel;: TLabel;: TTimer;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TPanel;: TButton;: TButton;: TButton;: TLabel;: TLabel;: TMenuItem;: TMenuItem;: TMenuItem;: TColorDialog;: TPanel;: TButton;: TGroupBox;: TEdit;: TLabel;: TLabel;: TEdit;: TLabel;: TEdit;: TEdit;: TLabel;: TGroupBox;: TLabel;: TLabel;: TEdit;: TEdit;: TButton;: TMemo;: TButton;: TMenuItem;: TEdit;: TEdit;: TLabel;: TLabel;: TGroupBox;: TLabel;: TLabel;: TScrollBar;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TOpenDialog;FormClose(Sender: TObject; var Action: TCloseAction);N6Click(Sender: TObject);N9Click(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);N8Click(Sender: TObject);ScrollBar1Change(Sender: TObject);FormCreate(Sender: TObject);Timer1Timer(Sender: TObject);N12Click(Sender: TObject);N21Click(Sender: TObject);N31Click(Sender: TObject);N41Click(Sender: TObject);N14Click(Sender: TObject);N15Click(Sender: TObject);Edit1Change(Sender: TObject);Edit3Change(Sender: TObject);Edit2Change(Sender: TObject);Edit4Change(Sender: TObject);Button4Click(Sender: TObject);FormMouseDown(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);FormMouseMove(Sender: TObject; Shift: TShiftState; X,: Integer);FormMouseUp(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);Button6Click(Sender: TObject);N2Click(Sender: TObject);Button5Click(Sender: TObject);Edit1KeyPress(Sender: TObject; var Key: Char);Edit2KeyPress(Sender: TObject; var Key: Char);Edit3KeyPress(Sender: TObject; var Key: Char);Edit4KeyPress(Sender: TObject; var Key: Char);Edit5KeyPress(Sender: TObject; var Key: Char);Edit7KeyPress(Sender: TObject; var Key: Char);N7Click(Sender: TObject);Edit5Change(Sender: TObject);Edit7Change(Sender: TObject);Edit6Change(Sender: TObject);Edit8Change(Sender: TObject);N5Click(Sender: TObject);

{ Private declarations }

{ Public declarations };//newmatr,matr-матрицы сод исх и бин изображ;ykon,ynach,xnach,xkon-коорд обл поиск: TForm2;,matr:array[1..1000,1..1000] of byte;,ynach,xnach,xkon:integer;,y,nx,ny,k,i:integer;,form,objekt:byte;:TColor;:string;,move:boolean;Unit1, Unit3;

{$R *.dfm}pryamoug(xnach,ynach,xkon,ykon,nx:integer);//процедура рисования прямоугольника.canvas.Pen.Width:=1;.Canvas.Pen.Style:=psdot;.Canvas.Brush.style:=bsclear;.Canvas.Rectangle(xnach+nx+41,ynach+21,xkon+41+nx,ykon+21);;TForm2.FormClose(Sender: TObject; var Action: TCloseAction);//Нажатие на кнопку закрытия окнаN9.Enabled=true then k:=messagedlg('Вы хотите сохранить результаты работы программы?',mtwarning, [mbYes,mbNo],0);k=6 then N9.Click;.Close;;TForm2.N6Click(Sender: TObject);//Вызов формы "о программе".showmodal;TForm2.N9Click(Sender: TObject);//Сохранение результатов работы программы: textfile;.Filter:='*.txt | *.txt';savedialog1.execute then.Enabled:=false;.FileName:= changeFileExt(savedialog1.FileName,'.txt');(fail,savedialog1.FileName);(fail);

writeln(fail,'Время и дата начала работы программы: '+ startwork);

writeln(fail,'');(fail,'Имя файла: '+opendialog1.FileName);(fail,'Разрешение: '+inttostr(nx)+'x'+inttostr(ny));(fail,'');(fail,'Выбранный порог обработки изображения :'+inttostr(scrollbar1.position));

writeln(fail,'');(fail,'Предпологаемые размеры объекта: ');

writeln(fail,'minШирина= '+edit5.text + ' maxШирина= '+edit6.text);(fail,'minВысота= '+edit7.text + ' maxВысота= '+edit8.text);(fail,'');(fail, memo1.text);(fail, 'Время обнаружения объекта: '+ Formatdatetime('c',now));(fail);('Файл '+savedialog1.FileName +' успешно сохранен');;;TForm2.Button2Click(Sender: TObject);//Фильтрация изображения с выьранным порогомy:=1 to ny dox:=nx downto 1 do:=matr[x,y];a<scrollbar1.position then a:=0 else a:=255;[x,y]:=a;:=$00010101*a;.Canvas.Pixels[x+40+nx,y+20]:=c;;.Left:=40+nx;.Show;.Show;.Enabled:=false;:=true;;TForm2.Button3Click(Sender: TObject);//Отобразить вторую панель.Show;;TForm2.N8Click(Sender: TObject);//Загрузка изображения на канву:file of byte;:array[18..25] of byte;.Click ;.Filter:='*.bmp | *.bmp';opendialog1.Execute then(f,opendialog1.FileName);(f);i:=18 to 21 do(f,i);(f,a);[i]:=a;(f,i+4);(f,a);[i+4]:=a;;:=mas[18]+mas[19]*256+mas[20]*256+mas[21]*256;:=mas[22]+mas[23]*256+mas[24]*256+mas[25]*256;:=filesize(f);y:=1 to ny dox:=nx downto 1 do(f,k-1);(f,a);[x,y]:=a;:=$00010101*a;.Canvas.Pixels[x+20,y+20]:=c;:=k-1;;.Left:=20;.Show;.Show;.Show;.Show;.Show;(f);.show;;;TForm2.ScrollBar1Change(Sender: TObject);//Изменение значение scrollBar.Caption:=inttostr(scrollbar1.position) ;;TForm2.FormCreate(Sender: TObject);.Height:=700;.Width:=1000;:=1;.color:=$00010101*0;.color:=$00010101*16;.color:=$00010101*32;.color:=$00010101*48;.color:=$00010101*64;.color:=$00010101*80;.color:=$00010101*96;.color:=$00010101*112;.color:=$00010101*128;.color:=$00010101*144;.color:=$00010101*160;.color:=$00010101*176;.color:=$00010101*192;.color:=$00010101*208;.color:=$00010101*224;.color:=$00010101*240;.color:=$00010101*255;:=FormatDatetime('c',now);;TForm2.Timer1Timer(Sender: TObject);//процедура таймераform of

:label5.Caption:=FormatDatetime('c ',now);

:label5.Caption:=FormatDatetime('m, tt ',now);

:label5.Caption:=FormatDatetime('dddd, t ',now);

:label5.Caption:=FormatDatetime('ddddd, t',now);;new=false then.canvas.Pen.Color:=clgreen;(xnach,ynach,xkon,ykon,nx);;;TForm2.N12Click(Sender: TObject);//выбор формата отображения часов:=1;;TForm2.N21Click(Sender: TObject);//выбор формата отображения часов:=2;TForm2.N31Click(Sender: TObject);//выбор формата отображения часов:=3;;TForm2.N41Click(Sender: TObject);//выбор формата отображения часов:=4;;TForm2.N14Click(Sender: TObject);//выбор цветовой схемы формыcolordialog1.Execute then.Color:=colordialog1.Color;;TForm2.N15Click(Sender: TObject);//выбор цветовой формы панелиcolordialog1.Execute then.Panel1.Color:=colordialog1.Color;.Panel2.Color:=colordialog1.Color;;TForm2.Edit1Change(Sender: TObject);//процедура изменения полей edit в Области поиска:=false;.canvas.Pen.Color:=clwhite;(xnach,ynach,xkon,ykon,nx);strtoint(edit1.text)<0 then edit1.text:='0';strtoint(edit1.text)>nx then edit1.Text:=inttostr(nx);:=strtoint(edit1.Text);.Enabled:=true;;TForm2.Edit3Change(Sender: TObject);//процедура изменения полей edit в Области поиска:=false;.canvas.Pen.Color:=clwhite;(xnach,ynach,xkon,ykon,nx);strtoint(edit3.text)<0 then edit3.text:='0';strtoint(edit3.text)>nx then edit3.Text:=inttostr(nx);:=strtoint(edit3.Text);.Enabled:=true;;TForm2.Edit2Change(Sender: TObject);//процедура изменения полей edit в Области поиска:=false;.canvas.Pen.Color:=clwhite;(xnach,ynach,xkon,ykon,nx);strtoint(edit2.text)<0 then edit2.text:='0';strtoint(edit2.text)>ny then edit2.Text:=inttostr(ny);:=strtoint(edit2.Text);.Enabled:=true;;TForm2.Edit4Change(Sender: TObject);//процедура изменения полей edit в Области поиска:=false;.canvas.Pen.Color:=clwhite;(xnach,ynach,xkon,ykon,nx);strtoint(edit4.text)<0 then edit4.text:='0';strtoint(edit4.text)>ny then edit4.Text:=inttostr(ny);:=strtoint(edit4.Text);.Enabled:=true;;TForm2.Button4Click(Sender: TObject);//Процедура выделения области:=false;.Cursor:=crCross;.Enabled:=true;;TForm2.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);//нажатие на клавиши мыши при выделение

beginform2.Cursor=crcross then:=true;:=x-nx-41;y:=y-21;.text:=inttostr(X);.text:=inttostr(Y);;;TForm2.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);//переменщение курсора мыши во время процедуры выделения

beginmove=true then:=x-nx-41;y:=y-21;.Text:=inttostr(x);.Text:=inttostr(y);;;TForm2.FormMouseUp(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);//отпускание клавиши мышиform2.Cursor=crcross then:=false;:=x-nx-41;y:=y-21;.Text:=inttostr(x);.Text:=inttostr(y);;;TForm2.Button6Click(Sender: TObject);//Конец выделения областиb:string;y:=1 to ny dox:=nx downto 1 do.Cursor:=crDefault;:=newmatr[x,y];:=$00010101*a;.Canvas.Pixels[x+40+nx,y+20]:=c;;.Canvas.Pen.Color:=clgreen;(xnach,ynach,xkon,ykon,nx);.Enabled:=false;.Enabled:=true;strtoint(edit1.text)>strtoint(edit3.text) then begin b:=edit1.text; edit1.Text:=edit3.Text; edit3.Text:=b;end;strtoint(edit2.text)>strtoint(edit4.text) then begin b:=edit2.text; edit2.Text:=edit4.Text; edit4.Text:=b;end;.Enabled:=False;;TForm2.N2Click(Sender: TObject);//Закрытие программы.close;;TForm2.Button5Click(Sender: TObject);//Процедура поиска объекта,summ,ykvkon,x,xkvnach,yKVnach, xKVkon,r,b:integer;:array [0..1000] of byte;:array [0..500,0..500] of byte;,Yest,yest1:boolean;(strtoint(edit6.text)=0) or (strtoint(edit8.text)=0) then

begin('Размеры объекта не указаны, пожалуйста укажите их', mtInformation, [mbOk],0);

exit;(strtoint(edit6.text)< strtoint(edit5.text)) or (strtoint(edit8.text)< strtoint(edit7.text))then

begin('Размеры объекта введены не коректно', mterror, [mbOk],0);

exit;;.Enabled:=true;.Clear;.Lines.Add('Область поиска');.Lines.Add('Xнач='+edit1.text+' Xкон='+edit3.text);.Lines.Add('Yнач='+edit2.text+ ' Yкон='+edit4.text);:=false;:=false;:=0;:=0;ynach:=strtoint(edit2.text) to ykon doxnach:=(strtoint(edit1.text)) to xkon do.Canvas.Pixels[nx+40+xnach,ynach+20]:=$00010101*newmatr[xnach,ynach];.canvas.Pen.Width:=1;.canvas.Pen.Color:=clgreen;.Canvas.Brush.style:=bsclear;.Canvas.Pen.Style:=psdot;.Canvas.Rectangle((strtoint(edit1.text))+nx+41,strtoint(edit2.text)+21,xkon+41+nx,ykon+21);ynach:=strtoint(edit2.text) to ykon do:=0;:=true;Yest=true thenxnach:=(strtoint(edit1.text)) to xkon donewmatr[xnach,ynach]=255 then newmatrOb[xnach,ynach]:=1;:=summ+newmatrOb[xnach,ynach];;:=(strtoint(edit3.text)-strtoint(edit1.text)+1);summ=summ2 then yest1:=false;yest1=false then:=false;:=true;:=false;((XKVkon-XKVnach+1)>=strtoint(edit5.text)) and ((XKVkon-XKVnach+1)<=strtoint(edit6.text)) and ((yKVkon-yKVnach+1)>=strtoint(edit7.text))and ((yKVkon-yKVnach+1)<=strtoint(edit8.text)) then:=objekt+1;.Lines.Add('Координаты области объекта '+inttostr(objekt)+':');.Lines.Add('Xнач='+inttostr(Xkvnach)+' Xкон='+inttostr(Xkvkon));.Lines.Add('Yнач='+inttostr(ykvnach)+' Yкон='+inttostr(ykvkon));.canvas.Pen.Width:=2;.Canvas.Pen.Color:=clred;.Canvas.Rectangle(xkvnach+40+nx,ykvnach+20,nx+40+xkvkon,ykvkon+20);;;xnach:=strtoint(edit1.text) to xkon donewmatr[xnach,ynach]=0 then:=true;xnach<xkvnach then xkvnach:=xnach;est=false then begin xkvnach:=xnach; ykvnach:=ynach; est:=true; end;xkvkon<xnach then xkvkon:=xnach;ykvkon<ynach then ykvkon:=ynach;;;objekt=0 then memo1.Lines.add('Объект не найден');prov(var Key: Char);not(key in ['0'..'9']) then key:=chr(0);;TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);(key);;TForm2.Edit2KeyPress(Sender: TObject; var Key: Char);(key);;TForm2.Edit3KeyPress(Sender: TObject; var Key: Char);(key);;TForm2.Edit4KeyPress(Sender: TObject; var Key: Char);(key);;TForm2.Edit5KeyPress(Sender: TObject; var Key: Char);(key);;TForm2.Edit7KeyPress(Sender: TObject; var Key: Char);(key);;TForm2.N7Click(Sender: TObject);//Создание нового проекта:=true;.Hide;.Hide;.Hide;.Hide;.Hide;.Hide;.canvas.pen.Color:=form2.Color;.canvas.pen.style:=pssolid;.canvas.Brush.Style:=bssolid;.canvas.Brush.Color:=form2.Color;.Canvas.Rectangle(0,0,2*nx+45,2*ny+20);;TForm2.Edit5Change(Sender: TObject);strtoint(edit5.Text)>=nx then edit5.text:=inttostr(nx);;TForm2.Edit7Change(Sender: TObject);strtoint(edit7.Text)>=ny then edit7.text:=inttostr(ny);TForm2.Edit6Change(Sender: TObject);strtoint(edit6.Text)>=nx then edit6.text:=inttostr(nx);TForm2.Edit8Change(Sender: TObject);strtoint(edit8.Text)>=ny then edit8.text:=inttostr(ny);TForm2.N5Click(Sender: TObject);//Вызов справки(handle, nil, 'help\help.html', nil, nil, SW_SHOWNORMAL);;.Unit3;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, jpeg, ExtCtrls;= class(TForm): TImage;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TLabel;Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm3;

{$R *.dfm}TForm3.Button1Click(Sender: TObject);.Close;;.


Содержание Задание на курсовую работу Введение 1. Разработка алгоритма решения задачи 1.1 Методы пороговой сегментации 1.2 Блок схема алгорит

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ