Інтелектуальна система діагностики онкопатологій
Комп’ютеризовані діагностичні системи в медицині. Аналітичний огляд методів розпізнавання зображень. Інформаційне та програмне забезпечення інтелектуальної комп’ютеризованої системи діагностування онкопатологій, оцінка її функціональної ефективності.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | украинский |
Дата добавления | 05.10.2013 |
Размер файла | 2,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Моделювання ієрархічного алгоритму екзамену підтвердило правильність та коректність функціонування інтелектуальної КСД онкопатологій.
ВИСНОВКИ
1. В роботі створено математичну модель та алгоритм навчання інтелектуальної КСД онкопатологій за інформаційно-екстремальною інтелектуальною технологією. В процесі проектування використано парадигму ООП, що дозволяє гнучко модифікувати програмний код при зміні алгоритму навчання.
2. Введення в контур навчання СППР алгоритму паралельно-послідовної оптимізації дозволило підвищити значення узагальненого критерію функціональної ефективності і для лінійного, і для ієрархічного вирішального правила, що є оцінкою достовірності правильного функціонування системи на етапі екзамену. Використання ієрархічного вирішального правила дозволило уникнути проблеми багато вимірності шляхом навчання узагальнення групи класів.
3. Отримане значення усередненого критерію функціональної ефективності не досягає безпомилкового, проте для бінарного ієрархічного вирішального правила в 4 рази вища за КФЕ лінійного вирішального правила . Використання ієрархічного вирішального правила зменшує перетин областей локалізації ознак, асоційованих з класами розпізнавання. Для підвищення достовірності функціонування СППР введено також додаткові контури оптимізації параметрів функціонування, такі як вибір базового класу на кожному рівні ієрархії, необхідного для розрахунку СКД на ОР Введення контуру оптимізації словника ознак повинно зменшити кількість неінформативних ознак та збільшити різноманітність між реалізаціями класів розпізнавання, що дозволить підвищити достовірність функціонування СППР.
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
1. Краснопоясовський А.С. Інформаційний синтез інтелектуальних систем керування: підхід, що грунтується на методі функціонально-статистичних випробувань.- Суми: Видавництво СумДУ, 2004.- 261 с.
2. Васильев В. И. Распознающие системы. Справочник. 2-е изд., перераб. и доп.Киев: Наукова думка, 1983. 422 с.
3. Анисимов Б. В., Курганов В. Д., Злобин В. К. Распознавание и цифровая обработка изображений.М.: Высшая школа, 1983.-256 с.
4. Прикладная статистика: Классификация и снижение размерности. Справ. изд./ С.А. Айвазян, В.М. Бухштабер, И.С. Енюков, Л.Д. Мешалкин / Под ред. С.А. Айвазяна. М.: Финансы и статистика, 1989 607 с.
5. Власов В.В. Введение в доказательную медицину. - М.: Медиа Сфера, 2001. - 392 с.
6. Флетчер Р., Флетчер С., Вагнер Э. Клиническая эпидемиология. Основы доказательной медицины / Пер. с англ. - М.: Изд-во Медиа Сфера, 1998. - 352 с.
7. Эшби У.Р. Конструкция мозга. Происхождение адаптивного поведения: Пер. с англ./ Под ред. П.К.Анохина и В.А.Шидловского. - М.:ИИЛ, 1965. -480 с.
8. Довбиш А.С. Основи проектування інтелектуальних систем: Навчальний посібник.- Суми: Видавництво Сум ДУ, 2009.- 171 с.
9. Краснопоясовський А. С. Оптимізація контейнерів класів розпізнаванняза методом функціонально-статистичних випробувань//Автоматизированные системы управления и приборы автоматики, 2002. Вып. 119. С. 6976.
10. Анохин П.К. Биология и нейрофизиология условного рефлекса. -М.: Медицина, 1968. - 547 с.
11. Путятин Е.П., Аверин С.И. Обработка изображений в робототехнике. - М.:Машиностроение, 1990. - 320 с.
12. Brazzi L., Bertolini G., Minelli C. Meta-analysis versus randomised controlled trials in intensive care medicine // Intens. Care Med. - 2000. - Vol. 26. - P. 239-241.
13. Cook D.J., Mulrow C.D. Haynes R.B. Systematic reviews: Synthesis of best evidence for clinical decisions. Ann Intern Med 1997; 126:376 - 380.
14. Isaacs D., Fitzgerald D. Seven alternatives to evidence based medicine: a questionnaire survey // BMJ. - 1998. - Vol. 316. - P. 361 - 365.
15. Краснопоясовський А. С., Черниш А.В., Сластушевський О.Ю. Про вибір критерію функціональної ефективності системи розпізнавання, що навчається // Радиоэлектроника и информатика, 2001. №4.
16. Кульбак С. Теория информации и статистика: Пер. с англ.М.: Наука, 1967.
ДОДАТОК
комп'ютерний діагностика онкопатологія
ТЕКСТ ПРОГРАМИ
Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, ExtDlgs, ComCtrls,math, Grids,
TeEngine, Series, TeeProcs, Chart, jpeg;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
Panel2: TPanel;
Button2: TButton;
Button3: TButton;
OpenPictureDialog1: TOpenPictureDialog;
Label4: TLabel;
Bevel5: TBevel;
Edit2: TEdit;
Label5: TLabel;
Label6: TLabel;
Edit3: TEdit;
Edit4: TEdit;
Image2: TImage;
Button1: TButton;
UpDown1: TUpDown;
Edit5: TEdit;
Image3: TImage;
Label7: TLabel;
Button4: TButton;
Panel5: TPanel;
Label10: TLabel;
ProgressBar2: TProgressBar;
ProgressBar4: TProgressBar;
ProgressBar5: TProgressBar;
Label12: TLabel;
Label14: TLabel;
TabSheet5: TTabSheet;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
Edit6: TEdit;
Image4: TImage;
Label17: TLabel;
Image5: TImage;
Label18: TLabel;
Edit7: TEdit;
UpDown2: TUpDown;
Button6: TButton;
StringGrid1: TStringGrid;
Label19: TLabel;
PageControl2: TPageControl;
TabSheet6: TTabSheet;
TabSheet7: TTabSheet;
TabSheet8: TTabSheet;
TabSheet9: TTabSheet;
StringGrid2: TStringGrid;
Label20: TLabel;
Edit8: TEdit;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
StringGrid3: TStringGrid;
StringGrid4: TStringGrid;
StringGrid5: TStringGrid;
Chart3: TChart;
Series3: TLineSeries;
Series4: TLineSeries;
Series5: TLineSeries;
Label24: TLabel;
StringGrid6: TStringGrid;
Panel6: TPanel;
Label25: TLabel;
Edit9: TEdit;
UpDown3: TUpDown;
Image6: TImage;
Image7: TImage;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Edit10: TEdit;
GroupBox5: TGroupBox;
Chart4: TChart;
BarSeries2: TBarSeries;
Label29: TLabel;
Edit11: TEdit;
UpDown4: TUpDown;
StringGrid7: TStringGrid;
Label30: TLabel;
Series6: TBarSeries;
Label1: TLabel;
Edit1: TEdit;
Image1: TImage;
SpeedButton3: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton1: TSpeedButton;
GroupBox2: TGroupBox;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Image8: TImage;
Label2: TLabel;
Chart1: TChart;
Series1: TBarSeries;
Chart2: TChart;
BarSeries1: TBarSeries;
Series2: TBarSeries;
TabSheet10: TTabSheet;
Bevel1: TBevel;
Button5: TButton;
Edit13: TEdit;
UpDown6: TUpDown;
Button7: TButton;
Label3: TLabel;
Label8: TLabel;
ProgressBar1: TProgressBar;
Button8: TButton;
Bevel2: TBevel;
Label9: TLabel;
Edit12: TEdit;
Label11: TLabel;
Label13: TLabel;
Label15: TLabel;
Edit14: TEdit;
Edit15: TEdit;
Label16: TLabel;
procedure SpeedButton3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Edit5Change(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Edit9Change(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Edit11Change(Sender: TObject);
procedure Edit12Change(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type ai=object
private
n_str:word;//кол-во реализаций
n_stolb:word;//кол-во признаков
m:byte;//кол-во классов распознавания
Y:array of array of array of byte;
BM:array of array of array of byte;
EV:array of array of byte;
name:array of string;
vdk,ndk,mid:array of byte;
EM:array of real;
EM_opt:array of real;
SK:array of array of array of word;
PARA:array of word;
delta:byte;
base:byte;
base_opt:byte;
delta_opt:byte;
delta_opt_mas:array of byte;
delta_opt_m2:array of byte;
E_opt:real;
D_opt:array of word;
d_:array of word;
public
procedure create(var a:ai);
procedure add(path:string);
procedure clean;
procedure make_Y;
procedure show(number:byte; var image:timage);
//procedure make_ev;
//procedure show(param:byte);
//procedure exp;
procedure make_SKD(var a:ai);
procedure make_SKD2(var a:ai);
procedure make_SK(var a:ai);
procedure TEACH(var zt:ai);
procedure TEACH2(var a:ai);
procedure make_EV(var a:ai);
procedure make_X(var a:ai);
procedure make_PARA(var a:ai);
procedure make_D(var a:ai);
procedure make_D2(var a:ai;num:byte);
procedure reliz(var a:ai);
//procedure binary;
//procedure opt;
end;
type ier=object
count:byte;
strata:array of ai;
descr:array of array of array of byte;//str_count,clust_count,class_count
procedure make_strata(var a:ier);
procedure make_Y(var a:ier);
end;
var
Form1: TForm1;
data,ex:ai;tree:ier;
b_x:array of array of tbitmap;
i_count:integer;
ie:boolean;
implementation
{$R *.dfm}
procedure ier.make_Y(var a:ier);
var i,j,k,c,c1,c2,c3:integer;
begin
setlength(a.strata,count);//кол-во классификаторов
for i:=0 to count -1 do begin
a.strata[i].m:=length(a.descr[i]);
setlength(a.strata[i].Y,a.strata[i].m);
setlength(a.strata[i].BM,a.strata[i].m);
setlength(a.strata[i].EV,a.strata[i].m);
setlength(a.strata[i].name,a.strata[i].m);
setlength(a.strata[i].EM,a.strata[i].m);
setlength(a.strata[i].EM_opt,a.strata[i].m);
setlength(a.strata[i].SK,a.strata[i].m);
setlength(a.strata[i].PARA,a.strata[i].m);
setlength(a.strata[i].D_opt,a.strata[i].m);
setlength(a.strata[i].d_,a.strata[i].m);
for j:=0 to a.strata[i].m-1 do begin
k:=length(a.descr[i,j])*data.n_str;
setlength(a.strata[i].Y[j],k,data.n_stolb);
setlength(a.strata[i].BM[j],k,data.n_stolb);
c:=0;
for k:=0 to length (a.descr[i,j])-1 do
for c1:=0 to data.n_str-1 do begin
a.strata[i].Y[j,c]:=data.Y[(a.descr[i,j,k]),c1];
inc(c);
end;
end;
end;
//showmessage('ok!');
end;
procedure ier.make_strata(var a:ier);
begin
count:=5;
form1.UpDown6.Min:=0;
form1.UpDown6.Max:=count-1;
setlength(a.descr,count);
setlength(a.strata,count);
setlength(a.descr[0],3);
setlength(a.descr[1],2);
setlength(a.descr[2],2);
setlength(a.descr[3],2);
setlength(a.descr[4],2);
{}
setlength(a.descr[0,0],3);
setlength(a.descr[0,1],1);
setlength(a.descr[0,2],3);
a.descr[0,0,0]:=0;
a.descr[0,0,1]:=1;
a.descr[0,0,2]:=2;
a.descr[0,1,0]:=3;
a.descr[0,2,0]:=4;
a.descr[0,2,1]:=5;
a.descr[0,2,2]:=6;
{}
setlength(a.descr[1,0],2);
setlength(a.descr[1,1],1);
a.descr[1,0,0]:=0;
a.descr[1,0,1]:=1;
a.descr[1,1,0]:=2;
{}
setlength(a.descr[2,0],1);
setlength(a.descr[2,1],1);
a.descr[2,0,0]:=0;
a.descr[2,1,0]:=1;
{}
setlength(a.descr[3,0],2);
setlength(a.descr[3,1],1);
a.descr[3,0,0]:=5;
a.descr[3,0,1]:=6;
a.descr[3,1,0]:=4;
{}
setlength(a.descr[4,0],1);
setlength(a.descr[4,1],1);
a.descr[4,0,0]:=5;
a.descr[4,1,0]:=6;
{}
end;
procedure ai.make_D2(var a:ai;num:byte);
var d,i,j,k:integer;
G:array of integer;
E,D1,D2,alpha,beta:real;
function Shennon(k1,k2,k3,k4:integer):real;
var sl1,sl2,sl3,sl4:real;
begin
if (k1=0)then sl1:=0 else sl1:=k1/(k1+k3)*Log2(k1/(k1+k3));
if (k2=0)then sl2:=0 else sl2:=k2/(k2+k4)*Log2(k2/(k2+k4));
if (k3=0)then sl3:=0 else sl3:=k3/(k1+k3)*Log2(k3/(k1+k3));
if (k4=0)then sl4:=0 else sl4:=k4/(k2+k4)*Log2(k4/(k2+k4));
result:=1+(1/2)*(sl1+sl2+sl3+sl4);
end;
function Kulbak(k2,k3,n:integer):real;
var sl1,sl2,sl3,sl4:real;
begin
try
sl1:=2*n+0.0000000000001-(k2+k3);
sl2:=k2+k3+0.0000000000001;
sl3:=(1/n)*Log2(sl1/sl2);
sl4:=sl3*(n-(k2+k3));
result:=sl4;
except
result:=0;
end;
end;
procedure K1(n,d:integer;var a1,a2,a3,a4:integer);// кол-во своих реализаций в n_str классе
var i,j:integer;
s:byte;
begin
a1:=0;
a2:=0;
a3:=0;
a4:=0;
for i:=0 to length(a.SK[n,0])-1 do begin
if a.SK[n,0,i]<=d then inc(a1)else inc(a2);
if a.SK[n,1,i]<=d then inc(a3)else inc(a4);
end;
end;
begin
form1.StringGrid7.Cells[0,0]:='радіус';
form1.StringGrid7.Cells[1,0]:='D1';
form1.StringGrid7.Cells[2,0]:='alpha';
form1.StringGrid7.Cells[3,0]:='D2';
form1.StringGrid7.Cells[4,0]:='beta';
form1.StringGrid7.Cells[5,0]:='KFE';
form1.StringGrid7.RowCount:=data.n_stolb;
form1.Series6.Clear;
setlength(a.EM,a.m);
// setlength(data.D_opt,data.m);
setlength(G,4);
k:=num;
for d:=1 to a.n_stolb do begin // обходим все радиусы
K1(k,d,G[0],G[1],G[2],G[3]);
// K1(k,d,obj.para[k],G[3],G[4]);
alpha:=G[1]/length(a.SK[k,0]);
D1:=G[0]/length(a.SK[k,0]);
beta:=G[2]/length(a.SK[k,0]);
D2:=G[3]/length(a.SK[k,0]);
if form1.RadioButton1.Checked=true then E:=Shennon(G[0],G[1],G[2],G[3])
else if form1.RadioButton2.Checked=true then E:=Kulbak(G[1],G[2],length(a.SK[k,0]));
{ if E>obj.EM[k]then begin}
if ((D1>0.5)and(D2>0.5))then
form1.Series6.AddXY(d,E,'',clblack) else form1.Series6.AddXY(d,E,'',clwhite);
form1.StringGrid7.Cells[0,d]:=inttostr(d);
form1.StringGrid7.Cells[1,d]:=floattostr(d1);
form1.StringGrid7.Cells[2,d]:=floattostr(alpha);
form1.StringGrid7.Cells[3,d]:=floattostr(d2);
form1.StringGrid7.Cells[4,d]:=floattostr(beta);
form1.StringGrid7.Cells[5,d]:=floattostr(E);
end;
end;
procedure ai.reliz(var a:ai);
var
bin:array of byte;
i,j,k,sum:integer;
i1,j1,k1,l1:integer;
begin
form1.Edit10.Text:=floattostr(a.E_opt);
setlength(b_x,a.m,2);
form1.Series3.Clear;
form1.Series4.Clear;
form1.Series5.Clear;
form1.Edit8.Text:=inttostr(a.base_opt);
setlength(a.delta_opt_m2,a.n_stolb);
setlength(bin,a.n_stolb);
form1.StringGrid2.RowCount:=a.m+1;
form1.StringGrid3.ColCount:=a.n_stolb;
form1.StringGrid4.ColCount:=a.n_stolb;
form1.StringGrid5.ColCount:=a.n_stolb;
form1.StringGrid2.Cells[0,0]:='№ Класу';
form1.StringGrid2.Cells[1,0]:='КФЕ';
form1.StringGrid2.Cells[2,0]:='Оптим. рад.';
for i:=1 to a.m do begin
form1.StringGrid2.Cells[0,i]:=inttostr(i);
form1.StringGrid2.Cells[1,i]:=floattostr(a.em_opt[i-1]);
form1.StringGrid2.Cells[2,i]:=inttostr(a.d_opt[i-1]);
end;
for i:=0 to data.n_stolb-1 do
form1.StringGrid3.Cells[i,0]:=inttostr(a.delta_opt_mas[i]);
a.base:=a.base_opt;
for i:=0 to a.n_stolb-1 do
a.delta_opt_m2[i]:=a.delta_opt_mas[i];
a.make_SKD2(a); //!!!
for i:=0 to a.n_stolb-1 do begin
form1.StringGrid4.Cells[i,0]:=inttostr(a.ndk[i]);
form1.StringGrid5.Cells[i,0]:=inttostr(a.vdk[i]);
form1.Series3.AddXY(i+1,a.mid[i]);
form1.Series4.AddXY(i+1,a.ndk[i]);
form1.Series5.AddXY(i+1,a.vdk[i]);
end;
a.make_X(a);
a.make_EV(a);
{}
for i:=0 to a.m-1 do begin
b_x[i,0]:=tbitmap.Create;
b_x[i,0].Width:=a.n_stolb;
b_x[i,0].Height:=Length(a.Y);
for j:=0 to Length(a.Y)-1 do
for k:=0 to a.n_stolb-1 do
if a.BM[i,j,k]=1 then
b_x[i,0].Canvas.Pixels[k,j]:=clblack else b_x[i,0].Canvas.Pixels[k,j]:=clwhite;
//Image6.Picture.Bitmap.Assign(b);
b_x[i,1]:=tbitmap.Create;
b_x[i,1].Width:=a.n_stolb;
b_x[i,1].Height:=20;
for j:=0 to 20-1 do
for k:=0 to a.n_stolb-1 do
if a.EV[i,k]=1 then
b_x[i,1].Canvas.Pixels[k,j]:=clblack else b_x[i,1].Canvas.Pixels[k,j]:=clwhite;
//Image7.Picture.Bitmap.Assign(b);
end;
{}
a.make_SK(a);
form1.UpDown3.Max:=a.m-1;
form1.UpDown4.Max:=a.m-1;
a.make_PARA(a);
form1.StringGrid6.Cells[0,1]:='Клас-сусід';
form1.StringGrid6.Cells[1,0]:='№ Класу';
for i:=0 to a.m-1 do begin
form1.StringGrid6.Cells[i+1,0]:=inttostr(i+1);
form1.StringGrid6.Cells[i+1,1]:=inttostr(a.para[i]+1);
end;
{}
{}
end;
procedure ai.make_D(var a:ai);
var d,i,j,k:integer;
G:array of integer;
E,D1,D2,alpha,beta:real;
function Shennon(k1,k2,k3,k4:integer):real;
var sl1,sl2,sl3,sl4:real;
begin
if (k1=0)then sl1:=0 else sl1:=k1/(k1+k3)*Log2(k1/(k1+k3));
if (k2=0)then sl2:=0 else sl2:=k2/(k2+k4)*Log2(k2/(k2+k4));
if (k3=0)then sl3:=0 else sl3:=k3/(k1+k3)*Log2(k3/(k1+k3));
if (k4=0)then sl4:=0 else sl4:=k4/(k2+k4)*Log2(k4/(k2+k4));
result:=1+(1/2)*(sl1+sl2+sl3+sl4);
end;
function Kulbak(k2,k3,n:integer):real;
var sl1,sl2,sl3,sl4:real;
begin
try
sl1:=2*n+0.0000000000001-(k2+k3);
sl2:=k2+k3+0.0000000000001;
sl3:=(1/n)*Log2(sl1/sl2);
sl4:=sl3*(n-(k2+k3));
result:=sl4;
except
result:=0;
end;
end;
procedure K1(n,d:integer;var a1,a2,a3,a4:integer);// кол-во своих реализаций в n_str классе
var i,j:integer;
s:byte;
begin
a1:=0;
a2:=0;
a3:=0;
a4:=0;
for i:=0 to length(a.SK[n,0])-1 do begin
if a.SK[n,0,i]<=d then inc(a1)else inc(a2);
if a.SK[n,1,i]<=d then inc(a3)else inc(a4);
end;
end;
begin
setlength(a.EM,a.m);
// setlength(data.D_opt,data.m);
setlength(G,4);
form1.ProgressBar4.Min:=0;
form1.ProgressBar4.Max:=25*data.m;
form1.ProgressBar4.Position:=0;
for k:=0 to a.m-1 do begin// оптимизация для к-того класса
E:=0;
form1.ProgressBar4.Position:=(k+1)*25;
a.EM[k]:=0;
a.d_[k]:=0;
for d:=1 to data.n_stolb do begin // обходим все радиусы
K1(k,d,G[0],G[1],G[2],G[3]);
// K1(k,d,obj.para[k],G[3],G[4]);
alpha:=G[1]/length(a.SK[k,0]);
D1:=G[0]/length(a.SK[k,0]);
beta:=G[2]/length(a.SK[k,0]);
D2:=G[3]/length(a.SK[k,0]);
if form1.RadioButton1.Checked=true then E:=Shennon(G[0],G[1],G[2],G[3])
else if form1.RadioButton2.Checked=true then E:=Kulbak(G[1],G[2],length(a.SK[k,0]));
{ if E>obj.EM[k]then begin}
if ((D1>0.5)and(D2>0.5))then begin
if E>a.EM[k]then begin
a.D_[k]:=d;
a.EM[k]:=E;
{obj.A[k]:=alpha;
obj.B[k]:=beta;
obj.D1[k]:=D1;
obj.D2[k]:=D2;}
end;
end;
{begin}
{ obj.D[k]:=-1;
end;}
{obj.EM[k]:=E;
obj.A[k]:=alpha;
obj.B[k]:=beta;
obj.D1[k]:=D1;
obj.D2[k]:=D2;}
// if k=1 then chart3.Series[0].AddXY(d,obj.em[k],'',kolor);
{end;}
end;
end;
end;
procedure ai.make_SK(var a:ai);
var i,j,k,sum1,sum2:integer;gamma:integer;
c1,c2,c3,temp:integer;
begin
setlength(a.SK,a.m,2);
//setlength(data.SK,data.m,2,data.n_str);
for k:=0 to a.m-1 do begin//массив SK для к-того класса
setlength(a.SK[k,0],length(a.Y[k]));
setlength(a.SK[k,1],length(a.Y[a.para[k]]));
for i:=0 to length(a.Y[k])-1 do begin
sum1:=0;
for j:=0 to a.n_stolb-1 do
if a.EV[k,j]<>a.BM[k,i,j] then inc(sum1);
a.SK[k,0,i]:=sum1;
end;
for i:=0 to length(a.Y[a.PARA[k]])-1 do begin
sum2:=0;
for j:=0 to a.n_stolb-1 do
if a.EV[k,j]<>a.BM[a.PARA[k],i,j] then inc(sum2);
a.SK[k,1,i]:=sum2;
end;
gamma:=min(length(a.Y[k]),length(a.Y[a.para[k]]));
// сортировка по возрастанию.
for c1 :=1 to length(a.SK[k,1])-1 do begin
c2:=a.sk[k,1,c1];
c3:=c1-1;
while((c3>=0)and(a.sk[k,1,c3]>c2)) do begin
a.sk[k,1,c3+1]:=a.sk[k,1,c3];
dec(c3);//dec(i);
a.sk[k,1,c3+1]:=c2;
end;
end;
//
setlength(a.sk[k,1],gamma);
// сортировка по возрастанию.
for c1 :=1 to length(a.SK[k,0])-1 do begin
c2:=a.sk[k,0,c1];
c3:=c1-1;
while((c3>=0)and(a.sk[k,0,c3]>c2)) do begin
a.sk[k,0,c3+1]:=a.sk[k,0,c3];
dec(c3);//dec(i);
a.sk[k,0,c3+1]:=c2;
end;
end;
//
if length(a.SK[k,0])>gamma then begin
for c1:=0 to gamma-1 do
a.SK[k,0,c1]:=a.SK[k,0,length(a.SK[k,0])-1-c1];
setlength(a.sk[k,0],gamma);
end;
end;
end;
procedure ai.make_PARA(var a:ai);
var i,j,k,d,d1:integer;
begin
setlength(a.PARA,a.m);
d1:=maxint;
for k:=0 to a.m-1 do begin //анализ для к-того класса
d:=0;
d1:=maxint;
for i:=0 to a.m-1 do begin //выбор класса для анализа расстояния
if i<>k then begin // не считать расстояние до самого себя
d:=0;
for j:=0 to a.n_stolb-1 do
if a.EV[k,j]<>a.EV[i,j]then inc(d);
if d<d1 then begin
d1:=d;
a.PARA[k]:=i;// номера классов нумер с нуля (по м-1)
end;
end;
end;
end;
end;
procedure ai.make_EV(var a:ai);
var i,j,k:integer;
sum:integer;
begin
setlength(a.EV,a.m,a.n_stolb);
for k:=0 to a.m-1 do
for i:=0 to a.n_stolb-1 do begin
a.EV[k,i]:=0;
sum:=0;
for j:=0 to length(a.Y[k])-1 do
sum:=sum+a.BM[k,j,i];
if sum/(length(a.Y[k]))<=0.5 then a.EV[k,i]:=0
else a.EV[k,i]:=1;
end;
end;
procedure ai.make_X(var a:ai);
var i,j,k:integer;
begin
for k:=0 to a.m-1 do
for i:=0 to length(a.Y[k])-1 do
for j:=0 to data.n_stolb-1 do
if ((a.Y[k,i,j]>=a.ndk[j])and(a.Y[k,i,j]<=a.vdk[j]))then
a.BM[k,i,j]:=1 else a.BM[k,i,j]:=0;
end;
procedure ai.make_SKD(var a:ai);
var i,j:integer;sum:longint;
s:string;
begin
setlength(a.mid,a.n_stolb);
setlength(a.ndk,a.n_stolb);
setlength(a.vdk,a.n_stolb);
for i:=0 to a.n_stolb-1 do begin
sum:=0;
for j:=0 to length(a.Y[a.base])-1 do
sum:=sum+Y[a.base,j,i];
a.mid[i]:=round(sum/length(a.Y[a.base]));
if (a.mid[i]+delta>255) then a.vdk[i]:=255 else
a.vdk[i]:=a.mid[i]+delta;
if (a.mid[i]-delta<0) then a.ndk[i]:=0 else
a.ndk[i]:=a.mid[i]-delta;
end;
end;
procedure ai.make_SKD2(var a:ai);
var i,j:integer;sum:integer;
s:string;
begin
setlength(a.mid,a.n_stolb);
setlength(a.ndk,a.n_stolb);
setlength(a.vdk,a.n_stolb);
for i:=0 to a.n_stolb-1 do begin
sum:=0;
for j:=0 to length(a.Y[a.base])-1 do
sum:=sum+a.Y[a.base,j,i];
a.mid[i]:=round(sum/length(a.Y[a.base]));
if (a.mid[i]+a.delta_opt_m2[i]>255) then a.vdk[i]:=255 else
a.vdk[i]:=a.mid[i]+a.delta_opt_m2[i];
if (a.mid[i]-a.delta_opt_m2[i]<0) then a.ndk[i]:=0 else
a.ndk[i]:=a.mid[i]-a.delta_opt_m2[i];
end;
end;
function distantion(m1,m2:array of byte;num:integer):word;//results: 1-continue;o-stop;
var i,j:word;
begin
j:=0;
for i:=0 to num-1 do
if (m1[i]<>m2[i]) then j:=1;
result:=j;
end;
{}{}{}{}{}{}{}{}{}
procedure ai.TEACH2(var a:ai);
var i,j,k:integer;
E:array of real;
bs,dl:integer;
E1:real;
mas1,mas2:array of byte;
s:word;
temp:byte;
E_bs:real;
rr:byte;
sst:integer;
begin
setlength(a.EM_opt,data.m);
setlength(mas1,a.n_stolb);
setlength(a.delta_opt_m2,a.n_stolb);
form1.Series2.Clear;
//data.E_opt:=0;
E1:=0;
E_bs:=0;
form1.ProgressBar2.Min:=0;
form1.ProgressBar2.Max:=25*150;
form1.ProgressBar2.Position:=0;
{}
for i:=0 to a.n_stolb-1 do begin
mas1[i]:=1;
//mas2[i]:=1;
a.delta_opt_m2[i]:=a.delta_opt_mas[i];
end;
{}
a.base:=a.base_opt;
sst:=strtoint(form1.Edit15.text)+1;
while (sst>0) do begin
dec(sst);
// while (distantion(mas1,a.delta_opt_m2,a.n_stolb)=1)do begin
for i:=0 to a.n_stolb-1 do
mas1[i]:=a.delta_opt_m2[i];
for s:=0 to a.n_stolb-1 do begin
temp:=a.delta_opt_m2[s];
for dl:=0 to 150 do begin
form1.ProgressBar2.Position:=(dl+1)*25;
a.delta_opt_m2[s]:=dl;
// for i:=0 to data.n_stolb-1 do
// data.delta_opt_m2[i]:=mas1[i];
a.make_SKD2(a); //!!!!!!make_skd2!!!!!
a.make_X(a);
a.make_EV(a);
a.make_PARA(a);
a.make_SK(a);
a.make_D(a);
E1:=0;
rr:=1;
for i:=0 to a.m-1 do begin
E1:=E1+a.EM[i];
if a.EM[i]=0 then rr:=0;
end;
E1:=E1/a.m;
if ((E1>a.E_opt)and(rr=1)) then begin
form1.Series2.AddY(E1,'',clgreen);
for i:=0 to a.m-1 do
a.EM_opt[i]:=a.em[i];
for i:=0 to a.m-1 do
a.D_opt[i]:=a.D_[i];
a.E_opt:=E1;
temp:=dl;
a.delta_opt_mas[s]:=dl;
// mas1[s]:=dl;
//data.delta_opt:=data.delta;
end else a.delta_opt_m2[s]:=temp;
end;
end;
for i:=0 to a.n_stolb-1 do
a.delta_opt_m2[i]:=a.delta_opt_mas[i];
end;
//showmessage('E_maks= '+floattostr(data.E_opt));
end;
{}{}{}{}{}{}{}{}{}
procedure ai.TEACH(var zt:ai);
var i,j,k:integer;
E:array of real;
bs,dl:integer;
E1:real;
rr:byte;
begin
zt.n_stolb:=data.n_stolb;
setlength(zt.EM_opt,zt.m);
setlength(zt.d_,zt.m);
setlength(zt.D_opt,zt.m);
setlength(zt.delta_opt_mas,zt.n_stolb);
form1.Series1.Clear;
zt.E_opt:=0;
E1:=0;
{}
form1.ProgressBar2.Min:=0;
form1.ProgressBar2.Max:=25*150;
form1.ProgressBar2.Position:=0;
{}
for bs:=0 to zt.m-1 do begin
zt.base:=bs;
for dl:=0 to 150 do begin
zt.delta:=dl;
zt.make_SKD(zt);
zt.make_X(zt);
zt.make_EV(zt);
zt.make_PARA(zt);
zt.make_SK(zt);
zt.make_D(zt);
E1:=0;
rr:=1;
for i:=0 to zt.m-1 do begin
E1:=E1+zt.EM[i];
if zt.EM[i]=0 then rr:=0;
end;
E1:=E1/zt.m;
form1.Series1.AddXY(dl,E1);
if ((E1>zt.E_opt)and(rr=1)) then begin
zt.E_opt:=E1;
zt.delta_opt:=zt.delta;
zt.base_opt:=zt.base;
for i:=0 to zt.m-1 do
zt.EM_opt[i]:=zt.em[i];
for i:=0 to zt.m-1 do
zt.D_opt[i]:=zt.d_[i];
end;
end;
for i:=0 to zt.n_stolb-1 do
zt.delta_opt_mas[i]:=zt.delta_opt;
end;
//showmessage('E_maks= '+floattostr(data.E_opt));
end;
procedure ai.show(number:byte; var image:timage);
var i,j,k:integer;b:tbitmap;
begin
i:=number;
b:=tbitmap.Create;
b.Width:=n_stolb;
b.Height:=n_str;
for j:=0 to n_str-1 do
for k:=0 to n_stolb-1 do
b.Canvas.Pixels[k,j]:=rgb(Y[i-1,j,k],Y[i-1,j,k],Y[i-1,j,k]);
Image.Picture.Bitmap.Assign(b);
b.Destroy;
end;
procedure ai.make_Y;
var b:tbitmap;i,j,k:integer;
begin
//data.n_stolb:=3;
//data.n_str:=3;
form1.Button2.Enabled:=false;
setlength(Y,m,n_str,n_stolb);
setlength(BM,m,n_str,n_stolb);
b:=tbitmap.Create;
for i:=0 to m-1 do begin
b.LoadFromFile(name[i]);
for j:=0 to n_str-1 do
for k:=0 to n_stolb-1 do
Y[i,j,k]:=getrvalue(b.Canvas.Pixels[k,j]);
end;
b.Destroy;
end;
procedure ai.clean;
begin
m:=0;
n_str:=0;
n_stolb:=0;
setlength(name,0);
form1.Edit2.Text:='0';
form1.Edit3.Text:='0';
form1.Edit4.Text:='0';
form1.SpeedButton2.Click;
end;
procedure ai.create(var a:ai);
begin
a.m:=0;
end;
procedure ai.add(path:string);
begin
if length(path)=0 then exit;
if((n_str=0)or(n_stolb=0))then begin
n_str:=form1.Image1.Picture.Bitmap.Height;
n_stolb:=form1.Image1.Picture.Bitmap.width;
end;
inc(m);
setlength(name,m);
name[m-1]:=path;
form1.Edit2.Text:=inttostr(m);
form1.Edit3.Text:=inttostr(n_str);
form1.Edit4.Text:=inttostr(n_stolb);
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
var s:string;
begin
if form1.OpenPictureDialog1.Execute then s:=form1.OpenPictureDialog1.FileName;
if length(s)=0 then exit else begin
form1.Edit1.Text:=s;
form1.Image1.Picture.LoadFromFile(s);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.Image1.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);
form1.Image3.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);
form1.Image4.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);
form1.Image5.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);
data.create(data);
data.create(ex);
form1.Edit2.Text:='0';
form1.Edit3.Text:='0';
form1.Edit4.Text:='0';
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
form1.Image1.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);
form1.Edit1.Text:='';
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
data.add(form1.Edit1.Text);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
data.clean;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
form1.Image3.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);
form1.Button2.Enabled:=true;
form1.UpDown1.Min:=2;
form1.UpDown1.Max:=2;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if (data.m<2) then begin
showmessage('Вхідний мат. опис СППР повинен містити щонайменше два класи');
exit;
end;
data.make_Y;
form1.UpDown1.Min:=1;
form1.UpDown1.Max:=data.m;
end;
procedure TForm1.Edit5Change(Sender: TObject);
begin
data.show(strtoint(form1.Edit5.text),form1.image3);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
ie:=false;
form1.Label2.Caption:='';
if form1.RadioButton3.Checked=true then begin
data.TEACH(data);
form1.Label2.Caption:='НАВЧАННЯ ЗАВЕРШЕНО';
end
else begin
data.TEACH(data);
data.TEACH2(data);
end;
data.reliz(data);
form1.Label2.Caption:='НАВЧАННЯ ЗАВЕРШЕНО';
form1.Edit12.Text:=floattostr(data.E_opt);
end;
procedure TForm1.SpeedButton4Click(Sender: TObject);
var s:string;
begin
if form1.OpenPictureDialog1.Execute then s:=form1.OpenPictureDialog1.FileName;
if length(s)=0 then exit else begin
form1.Edit6.Text:=s;
form1.Image4.Picture.LoadFromFile(s);
end;
end;
procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
form1.Image4.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);
form1.Edit6.Text:='';
end;
procedure TForm1.SpeedButton6Click(Sender: TObject);
begin
if length(form1.Edit6.Text)=0 then exit;
if((ex.n_str=0)or(ex.n_stolb=0))then begin
ex.n_str:=form1.Image4.Picture.Bitmap.Height;
ex.n_stolb:=form1.Image4.Picture.Bitmap.width;
end;
ex.m:=1;
setlength(ex.name,ex.m);
ex.name[ex.m-1]:=form1.Edit6.Text;
ex.make_Y;
form1.UpDown2.Min:=1;
form1.UpDown2.Max:=ex.n_str;
ex.show(1,form1.image5);
end;
procedure TForm1.Button6Click(Sender: TObject);
var
numb:integer;
bin:array of byte;
i,j,k,sum:integer;
fp:array of real;
begin
setlength(fp,data.m);
setlength(data.delta_opt_m2,data.n_stolb);
setlength(bin,data.n_stolb);
numb:=strtoint(form1.Edit7.Text)-1;
form1.StringGrid1.Cells[0,0]:='№ Класу';
form1.StringGrid1.Cells[1,0]:='Ф-ція належності';
for i:=1 to data.m do
form1.StringGrid1.Cells[0,i]:=inttostr(i);
{make mid}
data.base:=data.base_opt;
for i:=0 to data.n_stolb-1 do
data.delta_opt_m2[i]:=data.delta_opt_mas[i];
data.make_SKD2(data);
data.make_X(data);
data.make_EV(data);
for i:=0 to data.n_stolb-1 do
if ((ex.Y[0,numb,i]>=data.ndk[i])and(ex.Y[0,numb,i]<=data.vdk[i]))
then bin[i]:=1 else bin[i]:=0;
for i:=0 to data.m-1 do begin
sum:=0;
for j:=0 to data.n_stolb-1 do
if bin[j]<>data.EV[i,j]then inc(sum);
fp[i]:=1-(sum/data.d_opt[i]);
form1.StringGrid1.Cells[1,i+1]:=floattostr(fp[i]);
end;
end;
procedure TForm1.Edit9Change(Sender: TObject);
var i,j,k:integer;b:tbitmap;numb:word;
begin
numb:=strtoint(form1.Edit9.text);
try
Image6.Picture.Bitmap.Assign(b_x[numb,0]);
Image7.Picture.Bitmap.Assign(b_x[numb,1]);
except
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
ie:=true;
tree.make_strata(tree);
tree.make_Y(tree);
tree.strata[0].TEACH(tree.strata[0]);
showmessage('jk!!!!!!!!!!!!!!');
tree.strata[0].reliz(tree.strata[0]);
end;
procedure TForm1.Edit11Change(Sender: TObject);
var num:byte;
begin
num:=strtoint(form1.Edit11.text);
if ie=false then
data.make_d2(data,num)
else tree.strata[i_count].make_D2(tree.strata[i_count],num);
end;
procedure TForm1.Edit12Change(Sender: TObject);
var num:integer;
begin
num:=strtoint(form1.Edit11.text);
data.make_d2(data,num);
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
i_count:=strtoint(form1.Edit13.text);
form1.UpDown4.min:=0;
form1.UpDown4.max:=tree.strata[i_count].m;
tree.strata[i_count].reliz(tree.strata[i_count]);
end;
procedure TForm1.Button8Click(Sender: TObject);
var i:integer;
opt:real;
begin
ie:=true;
tree.make_strata(tree);
tree.make_Y(tree);
form1.ProgressBar1.Min:=0;
form1.ProgressBar1.Max:=25*tree.count;
form1.ProgressBar1.Position:=0;
opt:=0;
//tree.strata[0].TEACH(tree.strata[0]);
//showmessage('jk!!!!!!!!!!!!!!');
//tree.strata[0].reliz(tree.strata[0]);
form1.Label2.Caption:='';
if form1.RadioButton3.Checked=true then begin
for i:=0 to tree.count-1 do begin
form1.ProgressBar1.Position:=(i+1)*25;
tree.strata[i].TEACH(tree.strata[i]);
opt:=opt+tree.strata[i].E_opt;
end;
form1.Label2.Caption:='НАВЧАННЯ ЗАВЕРШЕНО';
end
else begin
for i:=0 to tree.count-1 do begin
form1.ProgressBar1.Position:=(i+1)*25;
tree.strata[i].TEACH(tree.strata[i]);
tree.strata[i].TEACH2(tree.strata[i]);
opt:=opt+tree.strata[i].E_opt;
end;
end;
opt:=opt/tree.count;
form1.Edit14.Text:=floattostr(opt);
form1.Label2.Caption:='НАВЧАННЯ ЗАВЕРШЕНО';
end;
end.
Размещено на Allbest.ru
...Подобные документы
Огляд методів розпізнавання образів. Основні ідеї інформаційно-екстремального методу розпізнавання рукописних символів. Критерій оптимізації параметрів функціонування даної системи. Інформаційне та програмне забезпечення обробки рукописних символів.
дипломная работа [291,0 K], добавлен 14.10.2010Комп’ютерне моделювання системи сегментації та розпізнавання облич на зображеннях. Підвищення швидкодії моделювання за кольором шкіри та покращення якості розпізнавання при застосуванні робастних boosting-методів. Розробка алгоритмів функціонування.
дипломная работа [1,6 M], добавлен 02.07.2014Апаратна організація Web-серверу гнучкої комп’ютеризованої системи в середовищі Linux Debian. Забезпечення обміну даними між персональним комп’ютером і зовнішніми вимірювальними приладами, прийом/передача даних крізь USB-інтерфейс в системи обміну даними.
дипломная работа [3,3 M], добавлен 25.10.2012Огляд інтелектуальних принципів організації процесу розпізнавання символів. Розробка системи безклавіатурного введення документів у комп’ютер. Опис і обґрунтування проектних рішень; розрахунки і експериментальні дані; впровадження системи в експлуатацію.
дипломная работа [182,5 K], добавлен 07.05.2012Класифікація програмного забезпечення, системне та прикладне забезпечення, інструментальні системи. Програмна складова комп'ютерної системи, опис алгоритмів розв'язання певної задачі. Класифікація операційних систем, основні групи прикладних програм.
презентация [945,0 K], добавлен 01.04.2013Класифікація об'єктно-орієнтованих мов програмування. Розробка алгоритмічного та програмного забезпечення комп'ютерної системи управління процесом випалювання будівельних матеріалів. Тестування програмного забезпечення, оцінка його ефективності.
курсовая работа [1,6 M], добавлен 25.04.2015Економічна інформація, її види та властивості. Апаратне і програмне забезпечення ПК. Програмне забезпечення стаціонарних комп’ютерів. Комп’ютерні мережі, загальна характеристика глобальної мережі Інтернет. Напрямки використання комп’ютерної техніки.
контрольная работа [28,0 K], добавлен 06.10.2011Визначення функціонального профілю захищеності комп’ютеризованої системи від несанкціонованого доступу і вимог до захищеності інформації від витоку технічними каналами. Вибір та обґрунтування необхідних фізичних та організаційних засобів захисту.
курсовая работа [2,4 M], добавлен 22.11.2014Функціонально розподілені системи. Паралельні комп’ютери та їх продуктивність. Методи розподілення доступу до спільної пам’яті в багатопроцесорних системах. Системи з розподіленою пам’яттю. Класичні матричні системи, метакомп’ютери та трансп’ютери.
курсовая работа [485,9 K], добавлен 20.06.2010Аналіз системних вимог та обґрунтування методу проектування системи. Алгоритм розв'язання задачі. Інформаційне, технічне, програмне та організаційне забезпечення. Вибір методу проектування архітектури та моделі функціонування системи "клієнт-банк".
дипломная работа [3,1 M], добавлен 12.05.2017Роль комп'ютерної техніки в різних сферах сучасного суспільства, необхідність його комп’ютеризації. Поняття про програмне забезпечення, складові, коротка характеристика його основних типів. Опис, призначення і можливості електронних таблиць MS Excel.
реферат [2,3 M], добавлен 10.10.2009Структура сучасних систем виявлення вторгнень (СВВ), аналіз її методів і моделей. Характеристика основних напрямків розпізнавання порушень безпеки захищених систем в сучасних СВВ. Перелік недоліків існуючих СВВ та обґрунтування напрямків їх вдосконалення.
реферат [467,9 K], добавлен 12.03.2010Розробка навчального курсу в системі дистанційного навчання Moodle для спеціальності "Гнучкі комп'ютеризовані системи та робототехніка". Складання логіко-функціональної схеми роботи програмного забезпечення: структура, функціональні модулі, інтерфейс.
дипломная работа [3,2 M], добавлен 22.10.2012Настільні видавничі системи як програмне забезпечення для персональних комп'ютерів, аналіз основних функцій. Аналіз діяльності компанії Ventura. Особливості верстки Adobe Page Maker. Знайомство з тенденціями розвитку настільних видавничих систем.
контрольная работа [26,8 K], добавлен 12.02.2014Актуальність сучасної системи оптичного розпізнавання символів. Призначення даних систем для автоматичного введення друкованих документів в комп'ютер. Послідовність стадій процесу введення документу в комп'ютер. Нові можливості програми FineReader 5.0.
курсовая работа [4,5 M], добавлен 29.09.2010Класифікація комп’ютерних мереж і топологій. Побудова функціональної схеми локальної мережі. Організація каналів зв’язку. Вибір способу керування мережею. Вибір конфігурації робочих станцій. Програмне забезпечення локальної мережі та захист інформації.
курсовая работа [2,7 M], добавлен 15.06.2015Поняття та характеритсики комп'ютерних мереж. Огляд існуючих варіантів побудови інформаційної системи для торгівельного підприємства. Побудова локальної мережі, загальної структури інформаційної системи, бази даних. Аналіз санітарно-гігієнічних умов.
курсовая работа [624,4 K], добавлен 19.05.2015Вивчення настільної видавничої системи, комплексу комп'ютерних апаратних і програмних засобів, які слугують для друкарської підготовки оригінал-макетів продукції. Аналіз кольороподілу і сканування зображень, корекції з елементами комп'ютерної графіки.
реферат [404,2 K], добавлен 13.05.2011База даних як складова частина інформаційної системи. Загальні принципи створення контролерів автоматизації MS Office. Розробка гнучкої комп'ютеризованої системи, призначеної для автоматизації розрахунку учбового навантаження. Моделі представлення даних.
дипломная работа [4,7 M], добавлен 26.10.2012Характеристика програмної взаємодії людини з комп'ютером. Визначення функціональних та експлуатаційних потреб при голосовому управлінні. Реалізація програмного забезпечення. Розробка тестів та тестування системи. Аналіз ефективності даної програми.
курсовая работа [2,8 M], добавлен 15.10.2014