Қазақстан Республикасы Білім және ғылым министрлігі Л.Н. Гумилев атындағы Еуразия ұлттық университеті Ержанов Мейрамбек Ержанұлы Суреттерді сүзгілеу алгоритмдерін жүзеге асыру ДИПЛОМДЫҚ ЖҰМЫС 5В070400 - «Есептеу техникасы және бағдарламалық қамтамасыз ету» мaмaндығы Астана 2018 Қазақстан Республикасы білім және ғылым министрлігі Л.Н. Гумилев атындағы Еуразия ұлттық университеті "Қорғауға жіберілді" Есептеу техникасы кафедрасының меңгерушісі __________________Н.Н. Ташатов (қолы) «_____»___________2018 ж. ДИПЛОМДЫҚ ЖҰМЫС Тақырыбы: «Суреттерді сүзгілеу алгоритмдерін жүзеге асыру» 5В070400 - «Есептеу техникасы және бағдарламалық қамтамасыз ету» мaмaндығы Орындаған: М.Е. Ержанов Ғылыми жетекші аға оқытушы С.А. Боранбаев Астана 2018 Л.Н. Гумилев атындағы Еуразия ұлттық университеті Ақпараттық технологиялар факультеті 5В070400 - «Есептеу техникасы және бағдарламалық қамтамасыз ету» мамандығы Есептеу техникасы кафедрасы БЕКІТЕМІН Кафедра меңгерушісі _______Ташатов Н.Н. «__» _______ 20__ ж. ДИПЛОМДЫҚ ЖҰМЫСҚА ТАПСЫРМА 4 курс, ЕТБҚ-47 тобының, 5В070400 - «Есептеу техникасы және бағдарламалық қамтамасыз ету» мамандығы, күндізгі бөлім студенті Ержанов Мейрамбек Ержанұлы 1. Университет бойынша 23.11.2017 жылғы -1340-n бұйрығымен бекітілген жұмыс тақырыбы «Суреттерді сүзгілеу алгоритмдерін жүзеге асыру». 2. Студенттің орындалған дипломдық жұмысты тапсыру мерзімі: 3.Жұмысқа алғашқы деректер: Тақырып негізіндегі әдебиеттер, әлеуметтік желісіндегі ақпарат 4. Дипломдық жұмыста қарастырылатын сұрақтар тізімі: 1) Ғаламтор көмегімен басқарылатын құрылғылардың қолданылу салаларын сипаттау; 2) Ғаламтор көмегімен басқарылатын құрылғыларды өндіруші ірі кқмпаниялар жұмысын көрсету; 3) Құрылғыларға рұқсатсыз қол жеткізуді іске асыру; 4) Зерттеу нәтижесіне сәйкес ақпараттық қауіпсіздікті қамтамасыз етуге қажетті ұсыныстар тізбегін ұсыну; 5.Ұсынылатын негізгі әдебиеттер тізімі: 1 Гонсалес Р., Вудс Р. Цифровая обработка изображений. – М.: Техносфера, 2005. – 205 б. 2 Гонсалес Р. Цифровая обработка изображений / Р. Гонсалес, Р. Вудс – М.: Техносфера, 2006. – 1072 б. 3 Кашкин, В. Б. Цифровая обработка аэрокосмических изображений : электрон. учеб. пособие / В. Б. Кашкин, А. И. Сухинин – Красноярск : ИПК СФУ, 2008 – 278 б. 4 Матричные фильтры обработки изображений [Электронный ресурс] / режим доступа: http://habrahabr.ru/post/142818/ 6. Жұмыс бойынша консультациялар Бөлім Ғылыми Тапсырма алу жетекші, мерзімі кеңесші Мазмұны Боранбаев С.А. 8.12.201715.12.2017 Кіріспе Боранбаев С.А. 16.12.201718.12.2017 Әдебиеттер Боранбаев С.А. 19.12.2017тізімі 21.12.2017 1 тарау Боранбаев С.А. 22.12.201715.02.2018 2 тарау Боранбаев С.А. 15.02.201810.03.2018 3 тарау Боранбаев С.А. 10.03.201805.04.2018 Қорытынды Боранбаев С.А. 05.04.201812.04.2018 Тапсыр Тапсырма ма берді алды (қолы) (қолы) 7. Дипломдық жұмысты орындау кестесі - 1 2 3 4 5 6 Жұмыс кезеңдері Дипломдық жұмыс тақырыбын бекіту Дипломдық жұмыс әзірлеуге мәліметтер жинау Дипломдық жұмыстың теориялық бөлімін әзірлеу (1 тарау) Дипломдық жұмыстың талдамалы бөлімін әзірлеу (2-3 тараулар) Дипломдық жұмыстың толық мәтінінің алғашқы нұсқасын аяқтау Дипломдық Жұмыс кезеңдерін орындау мерзімі 30.11.2017 Ескерту 15.12.2017 25.02.2018 Тәжірибеге кеткенге дейін 05.04.2018 Тәжірибе кезінде 12.04.2018 Тәжірибе соңында 27.04.2018 Тәжірибе бойынша есеп 4 7 8 9 жұмысты алдын ала қорғауға ұсыну Дипломдық жұмысты пікірге (рецензияға) ұсыну Дипломдық жұмыстың толық мәтінінің соңғы нұсқасын, ғылыми жетекшінің және рецензент пікірімен ұсыну Дипломдық жұмысты қорғау беру кезінде 10.05.2018 20.05.2018 15-16.06.2018 МАК кестесіне сай Тапсырма берілген уақыты «1» желтоқсан 2017ж. Жұмыс жетекшісі _____________________аға оқытушы, Боранбаев С.А. Тапсырманы орындауға алған студент Ержанов М.Е. 5 МАЗМҰНЫ Кіріспе .................................................................................................................... 7 1 Суреттерді сүзгілеу жүйелеріне талдау жасау .............................................. 10 1.1 Алдын ала өңдеудің міндеттері ................................................................... 10 1.2 Сүзгілердің жұмысына талдау жасау ......................................................... 16 1.3 Суреттерді өңдеу жүйелерінің құрылымы ................................................. 25 2 Суреттерді сүзгілеу алгоритмдерін жүзеге асыру ........................................ 34 2.1 Суреттерді анықтау мәселесі ....................................................................... 34 2.2 Суреттерді сүзгілеуге арналған бағдарламаның жобалануы ................... 39 2.3 Суреттерді сүзгілеуге арналған қосымшаның өңделуі ............................. 48 Қорытынды .......................................................................................................... 53 Пайдаланылған әдебиеттер тізімі ...................................................................... 54 Қосымша .............................................................................................................. 56 Кіріспе Дипломдық жұмыстың өзектілігі. Қазіргі кезде есептеуіш жүйелердің параллельді архитектурасына көрініс мәселелері ең өзекті болып табылады, себебі есептеуіш құралдарды пайдаланудың тиімділігін арттырудың негізгі бағытына есептеуді ұйымдастырудың параллель әдістерін қолдану жатады. Көрініс беру мәселесін шешудегі басты нәрсеге алгоритмдердің ақпараттық құрылымын талдау жатады. Ал В.В.Воеводиннің өз жұмыстарында нақты есептеуіш салаларда типтік ақпараттық құрылымдар көп емес деп айтады. Нақты қолданбалы салаларда осындай ақпаратты модельдерді құрастыру ісі өзекті мәселе болып табылады, себебі ол үйлестіруші есептеуіш жүйелерде қандай да класқа жататын есептерді шешетін арнайы маманданған бағдарламалық құрылғылар үшін және мақсатты алгоритмдерді жылдам орындай алатын арнайы процессорлар үшін жаңа тәсілдерді ұсынады. Көрініс беру есебін шешудің негізгі әдісі – алгоритмнің ақпараттық құрылымының моделін (сипаттауын) ұқсас математикалық түрлендіру, оның барысында есептерді параллель түрде ұйымдастыру нұсқалары қалыптасады [1]. Алгоритмнің ақпараттық моделін түрлендіру кезінде есептеудің тәртібі ғана емес, деректердің құрылымы да түрленеді: деректер үйлестірілетін, көшірілетін және жергілікті деп бөлінеді, есептеу барысындағы коммуникациялық шығындарды азайтатын үйлестіру әдістері анықталады. Есептерді параллель шешу үшін осылай құрастырылған нұсқалар оларды есептеуіш жүйелердің мүмкін архитектураларындағы кейбір көпмүшелерде жүзеге асыру тиімділігі жағынан талданады. Көрініс беру мәселесін щешу үшін ұсынылған бұл әдіс алгоритмнің ақпараттық құрылымын сипаттайтын модельдерге келесі негізгі талаптар қойылады. Алгоритмнің есептеуіш жүйенің параллель архитектурасында көрініс беруі кезінде қолданыла алатын параллелизмнің барлық аспектілері модельде болуы қажет, олар – деректер бойынша параллелизм мен есептеулер бойынша параллелизм. Есептеулер бойынша параллелизм көбінесе алгоритмнің макроқұрылымын құрайтын негізгі ішкі операцияларды бір уақытта орындау мүмкіндігін сипаттайды. Деректер бойынша параллелизм әдетте тәуелсіз орындала алатын деректер элементтеріне қатысты төменгі деңгейдегі операцияларды қалыптастырады. Параллелизмнің бұл аспектілері өзара тығыз байланысып, өздерінше иерархияны түзеді: жоғары деңгейде тәуелсіз макрооперациялар (есептеулер бойынша параллелизм) тұрып, олардың бөлігі деректерді параллель түрлендіруден (деректер бойынша параллелизм) тұрады. Модель есептерді параллель ұйымдастыру кезінде алынатын деректерді үйлестіру мен олардың орнын ауыстыруды сипаттауы қажет. Модель деректерді орналастырудың әрбір нұсқасы бойынша орындаудың тиімділігін және есептеулерді ұйымдастырудың сипаттамаларын және уақытқа баға берудің құралдарынан тұруы тиіс, бұл модельдер алгоритмнің ақпараттық құрылымын барабар және дұрыс есептей алып, оларды параллельді архитектурадан тұратын бағдарламалық-аппараттық құралдардың көпмүшелірінде тапсырмаларды есептерді сипаттау шешімінің уақытын ескеруі қажет. Ақпараттық модельді бұлай кеңейту мақсатты есептеуіш жүйеде қолданылатын бағдарламалықаппараттық құралдардың өнімділік қасиеттерін сипаттайтын алдыңғы аналитикалық модельді құрастырумен немесе таңдаумен, және бұл модельдің параметрлеріне қызмет етудің түрлі салаларында дұрыс баға беру әдістерін таңдаумен байланысады [2]. Ғылыми жаналығы. Суреттерді сандық өңдеу ғылымның жылдам дамып келе жатқан саласы болып табылады. Заманауи әлемде фото және бейне форматтағы ақпараттарды қолданудың қажеттілігі артып жатыр. Осы түрдегі ақпараттар, сонымен қатар бұл ақпаратты сақтауға, түзетуге және өңдеуге мүмкіндік беретін технологиялар біздің күнделікті салаларымызда қолданылып жатыр, оларға бейне бақылау жүйелері, жарнама, медициналық жабдықтар, металдар мен қорытпалардың металлографикалық бейнелеріне талдау жасау және т.б. жатады. Marketline Companies америкалық статистикалық эконономикалық агенттігінің 2016 жылғы мәліметтеріне сәйкес, фото және бейнелерді қамтитын, оларды өңдейтін және сақтайтын бағдарламалық-аппараттық құралдардың сатылатын көлемі жыл сайын 20 пайызға артып келеді, соған байланысты жыл сайын пропорционалды түрде фото және бейнелердің саны да артып жатыр. Датчиктердің көмегімен ақпаратты алудың барысында суреттердің бұрмалануы орындалады. Сондықтан фото және бейнелерді өңдеудің тиімділігін және сапасын жақсарту мәселесі өте өзекті болуымен қатар, үлкен қызығушылықты тудырады. Сандық бейнелерді талдау мен сүзгілеу алгоритмдерін құрастыру сұрақтарымен көптеген авторлар айналысқан. Р. Вудс және Р. Гонсалес, У. Прэтт сандық суреттердегі шуылдарды талдау сұрақтарын зерттеуге көп үлестерін қосты. Сондай-ақ, Я. А. Фурман, А. Н. Юрьев, В. В. Яншин және В. А. Сойфер сандық бейнелердегі шуылдарды төменгі жиілікте сүзгілеу саласында маңызды зерттеулерді жүргізді. Зерттеу нысаны. Көптеген жұмыстардың жүргізілгеніне қарамастан, мәселелердің барлығы да әмбебап шешімдерін тапқан жоқ, соның ішінде қазіргі таңдағы шуылдарды сүзгілеу алгоритмдері шуылдардың нақты бір түрлерін ғана сүзгілей алады және шуылы бар суреттер мен облыстардың үлкендігіне қарай әмбебап қолданысы мен бейімделгіштіктері жоқ. Практикалық маңыздылығы. Бейнелерді сүзгілеу қажет болған кезде ең алдымен шуылдардың не екенін біліп, олармен күресу жолдарын қарастыру қажет. Алайда, бұл қиындыққа алғашқы рет тап болған кезде бұл саланы зерттеу қажет болып, нәтижесінде бұл негізгі жұмыстың орындалу уақыты мен мерзіміне кері әсерін тигізе алады. Соңғы онжылдықтарда сигналдар мен бейнелердің сандық сүзгілеу теориясы мен әдістері үлкен дамудан өтті. Сүзгілеу алгоритмдерін құрастыру сигналдың немесе бейне мен шуылдың ықтималдық модельдерін, одан бөлек оңтайлы түрлі статистикалық критерийлерін қолдануға негізделеді. Осының арқасында сүзгілеудің әдістері мен алгоритмдерінің әр алуан түрлері кездеседі [3]. 8 Дипломдық жұмыстың мақсаты – сандық бейнедегі шуылды жою мәселесін шешуге мүмкіндік беретін алгоритмді құрастыру. Қойылған мақсатқа қол жеткізу үшін келесі міндеттер орындалуы тиіс: сандық суреттерді алдын ала өңдеу міндетіне талдау жасау; сүзгілерді жіктеу; сүзгілеу алгоритмін құрастыру. Дипломдық жұмыстың мазмұны кіріспеден, 2 негізгі бөлімнен, қорытынды және қосымшадан тұрады. 9 1 Суреттерді сүзгілеу жүйелеріне талдау жасау 1.1 Алдын ала өңдеудің міндеттері Ақпараттық жүйелерде алынған суреттер өте сирек жағдайларда сандық формада болады. Сондықтан сандық өңдеу, тасымалдау мен сақтау қажет болғанда оларды осы сандық түрге түрлендіру міндетті операция болып табылады. Бұл түрлендіру екі іс-шарадан тұрады. Біріншісінде үздіксіз кадр дискретті кадрмен алмастырылады, әдетте дискреттеу деп аталады, ал екіншісі жарықтық мәндерінің үздіксіз көптігін кванттық мәндердің көптігімен алмастырады және кванттау деп аталады. Сандық көрсетілім кезінде жарықтықтың әрбір кванттық мәні үшін сәйкесінше екілік сан беріледі, сол арқылы суретті ЭЕМ-ге енгізу мүкіндігі туындайды. Дискреттеу мен кванттау операцияларының нәтижесінде шынайы сандардың матрицасы туындайды. Мысал ретінде алып қарасақ, суретті дискреттеу арқылы ƒ(𝑥𝑥,𝑦𝑦) M қатар мен N бағаннан тұратын матрица пайда болды деп есептейік. Мұндағы (x, y) координаталары енді дискретті мәнге ие болады. Координатаның басы болып суреттің сол жақтағы жоғары бұрышы есептеледі, ондағы (x, y) = (0, 0). Суреттің бірінші қатарының бойындағы келесі мән деп (x, y) = = (0, 1) деп есептеліп кете береді [4]. Осы белгіленген мәндерді қолдану арқылы сандық бейне көрсетілген матрица формасында M⋅N өлшемінде тығыздап орналастыруға болады (сурет 1). Өзге де алгебралық матрицалардағы секілді, сандық бейненің матрицасы мен пиксельдердің мәндерін түрлендіруге және олармен әр түрлі арифметикалық амалдарды орындауға болады. Матрицалармен жұмыс жасау кезінде матрицаларды қосуға, азайтуға, көбейтуге, аударуға және матрица анықтауышын табуға болады. Сурет 1 Суретті матрица түрінде көрсету. 10 Суреттерді өңдеу процесі бірнеше кезеңдерден тұрады. Бұл кезеңдердің ішіндегі ең маңыздыларының біріне жеке процесс болып табыялатын суреттерді алдын ала өңдеу жатады. Суреттерді алдын ала өңдеу суреттегі көмескіліктерді, шуылдарды және бұрмалануларды сүзгілеу үшін қолданылады. Суреттерді алдын ала өңдеудің міндеттері: шуылдарды азайту; жарықтық диапазонын өзгерту; айқындықты өзгерту; түстерді нақтылау; геометриялық бұрмалануларды нақтылау. Суреттерді алдын ала өңдеудің міндеті болып суреттің сапасын жақсарту саналады. Суретті алдын ала өңдеудің әдістері суреттің қандай жолмен алынғанына байланысты үлкен айырмашылықтарды жасай алады – машиналық графика жүйесімен синтезделді ме, әлде ақ-қара немесе түсті фотосуретті немесе видеоны цифрлендіру арқылы орындалды ма? Шуылды басу көзбен қабылдауды жақсарту үшін қажет. Оған кәсіпорын мен тұрмыстағы әр түрлі оқиғаларды мысалға келтіруге болады: кәсіби фототүсірілімде кескіндердің түстерін түзету, медицинада рентгендік кескіндерде суретті анық ету үшін, келесі анықтау үшін алдын ала өңдеу ретінде; металлографияда қазандағы графиттің бөлінуінің таралу тығыздығын анықтау үшін және т.б. [5]. Сонымен бірге шуылды басу сандық суреттерді сығу кезінде маңызды рөлді атқарады. Сығу алгоритмдеріндегі негізгі мәселелердің біріне суреттегі белгіленген облыстың жергілікті шуылдануын анықтау жатады. Суретті сығу кезінде үлкен шуыл суреттің бөлшегі деп қабылдануы мүмкін, және бұл, біріншіден, сығу процесіне қиындық туғыза алады, ал екіншіден, сығылған суреттің соңғы сапасына кері әсерін тигізеді. Шуылдың көздері әр алуан бола алады: - фотосезімтал матрицалар және зарядты байланысты аспаптың сызғыштары; - түсірілім шарттары; - тасымалдаушыдағы ақпаратты зақымдау кезінде мәліметтердің бұрмалануы; - электромагниттік өрістердің көздерінен, тасымалдау желілерінің белсенді компоненттерінен (күшейткіштерінен) ұқсас арналар бойынша жіберу кезінде көмескіліктердің болуы; - ұқсас композиттік сигналдан жарықтық және түс ажыратқыштық сигналдарды бөлу кезіндегі дәлсіздік және т.с.с. Сәйкесінше, шуылдарды да бөлуге және жіктеуге болады. Бұрмалану типіне қарай шуылдардың бөлінетін түрлері: - аппараттық бөліктен туындайтын аддитивті шуыл; - желі арналарының параметрлері кездейсоқ өзгергеннен туындайтын мультипликативті шуыл; - бағдарламалық бөліктен туындайтын импульстық шуыл. 11 Шуылдарды көзбен қабылдануына қарай келесі түрлерге өлуге болады: - ақ шуыл – бөлшектері бір-бірімен байланысты болмайтын сигнал, ал оның бір түрі – ақ гаусстық шуыл, ол сигналды қабылдау сапасы төмен болғанда туындайды және амплитудаларды үлестіру тығыздығының функциясымен сипатталады: d2 2 1 p(d ) e 2 2 (1) мұндағы d – шуыл амплитудасы, σ – үлестіру параметрі; - импульстық шуыл, яғни, «тұз және бұрыш» типті шуыл – жарықтың максималды («тұз») және минималды («бұрыш») мәндері бар бейнедегі кездейсоқ бөлектенген нүктелер. Әдетте ұқсас арналар бойынша жіберген кезде туындайды; - жарық дақтары – ұқсас сигналда кездеседі (VHS видеокассеталарынан цифрленген видеобейнеде кездеседі); - «соғылған» пиксельдер – қайта кодтауда туындаған қателіктің әсерінен қисынсыз мәндерге ие нүктелер немесе нүктелердің облысы; - сызаттар, олар әдетте таспаның эмульсиясы механикалық зақымдалған кезде немесе камераның объективінде ақаулар болған кезде туындайды. Әр түрлі шуылдардың әсеріне ұшыраған суреттің кескіндері көрсетілген (Сурет 2). а) б) в) Сурет 2 Шуылдардың әр түрлі типтері: а) – тірі тіннің биологиялық жасушалары суретінің шуылданбаған кескіні; б) – шуылданған кескін (гаусстық шуыл); в) – шуылданған кескін (импульстық шуыл). 12 Қазіргі таңда шуылдардың барлық түрлерін анықтап, оларды жоя алатын әмбебап сүзгілер жоқ. Шуылды басу алгоритмдері шуылдың нақты бір түрін жоюмен ғана айналысады. Сонымен қатар, көптеген шуылдарды ақ гаусстық шуылдың моделіне ұқсатуға болады, сондықтан алгоритмдердің көпшілігі шуылдың осы түрін басуға бейімделген [6]. Суреттерді жақсарту. Компьютерлік жүйелерде бастапқы суреттер мен сурет түрінде деректерді өңдеудің нәтижелері экранда көрсетіледі, бұл ақпараттардың барлығын алушы адам – бақылаушы. Осындай көріністі қамтамасыз ететін жосықты визуалдау деп атайды. Суретті өңдеген кезде адамның оны қарап, түсінуі барынша ыңғайлы болатындай етіп жасаған жөн. Көп жағдайларда суретті субъективті қабылдауды жақсарту мақсатымен бақыланатын суреттің нақты бір қасиеттерін айрықша баса көрсетіп, күшейту пайдалы болып табылады. Ең соңғысы, қабылдаудың субъективтілігі осы мақсаттарға қолжеткізу барысында формаланған әдісті қолдануды күрделі етеді. Сондықтан суретті визуалдау үшін өңдеу кезінде кең тарған әдістерді алдық, онда оңтайлы қатал математикалық критерийлер жоқ. Бұл критерийлерді нәтижелерге субъективті баға беруге негізделген қандай да бір өңдеудің жалпы дұрыстығы туралы сапалық түсініктер алмастырады. Кадрдың әрбір нүктесінде нәтижені алу үшін жасалатын өңдеулердің басым көпшілігі бастапқы суреттен өңделетін нүктенің жанындағы нүктелерінің жиынтығынан бастапқы деректерді алады. Алайда элемент бойынша біртіндеп өңдеу жасалатын жосықтар тобы да бар. Бұл жағдайда кез келген нүктедегі өңдеудің нәтижесі дәл осы нүктедегеі бастапқы суреттің мәніне байланысты болады. Осындай жосықтардың анық артықшылығы ретінде өте қарапайым болуын айтуға болады. Онымен қоса, олардың көбісі визуалды сапаны анық субъективті жақсартуға да алып келеді. Сол себепті элементтік жосықтарға осыншама назар аударылады. Элементтік өңдеу бастапқы өңдеу ретінде және суретке анализ жасағанда соңғы саты ретінде қолданылады. Элементтік өңдеудің мәнін келесі жолмен түсіндіріп кетуге болады. Мысалы, f (n,m) және g(n,m) – бұлар кадрдың нүктесіндегі бастапқы суреттің және өңдеуден кейінгі суреттің жарықтық мәндері болсын, олардың декарттық координаталары – n (бағанның нөмірі) және m (жолдың нөмірі). Элементтік өңдеу осы жарықтардың арасында бір мәнді функционалды тәуелділік бар екенін білдіреді: (2) g (n, m) ( f (n, m)), ол бастапқы сигналдың мәні арқылы соңғы сигналдың мәнін анықтай алады. Яғни, бастапқы суреттің әрбір элементі соңғы сурет элементінің жаңа мәні болып түреніп, бастапқы элементтің өзге элементтерінің мәніне тәуелді болмайды. Элементтік өңдеудің ең жиі тараған жосықтарын қарастырайық. Суретті сүзгілеудің негіздері. Оптикалық-электрондық түрлендіргіштерден шығып, алынған сурет бөгеуілдердің кесірінен бұрмаланып көрінеді. Бұл әрі оператор-адамның ол суретке визуалды талдау жасауына, әрі компьютерлік автоматты өңдеуге де кедергі келтіреді. Суретті өңдеу кезінде 13 суреттің өзіндегі де кейбір облыстары бөгеуілдер болып саналады. Мысалы, күрделі фонда орналасқан объектілерге анализ жасаған кезде фонның өзі де бөгеуілге жатады. Суреттерге цифрлік анализ жасаған кезде суреттің геометриялық бұрмалануларын жойып, түрлі шығу текті шуылдарды азайтып, апертуралық түзетуді орындау керек. Бөгеуілдердің әрекетін әлсіздету үшін сүзгілеу пайдаланылады [7]. Суреттерді сүзгілеу кеңістіктік және жиіліктік облыстарда орындалады. Суреттерді кеңістіктік сүзгілеу кезінде түрлендіру тікелей суреттің есептеме мәндеріне жасалады. Сүзгілеудің нәтижесінде суреттің пайдалы сигналына баға беріледі. Сурет – ол кеңістіктік координаталардың екі өлшемді функциясы және ол бөгеуілді сипаттайтын екі өлшемді функцияға қарағанда баяуырақ өзгереді. Сондықтан кадрдың әрбір нүктесінде пайдалы сигналға баға берген кезде осы нүктенің маңайын (онымен көршілес орналасқан нүктелердің жиынтығын) қарастырады және оның жан-жағындағы сигналдың жалпы сипаттамаларын пайдаланады. Кейбір жағдайларда пайдалы сигналдың белгісіне жарықтың бірден өзгеріп кетуі жатады. Бірақ, әдетте, бұл жарық өзгерістерінің жиілігі көп емес, сондықтан олардың арасындағы үлкен айырмашылықтарда сигнал тұрақты болады немесе баяу өзгереді. Бұл жағдайда да сигналдың қасиетін көру үшін жеке жалғыз нүктені ғана емес, оның жан-жағына да анализ жасау керек. Байқасақ, жан-жағындағы нүктелер түсінігі тек шартты болып қана табылады. Кесте 1-де «0» деп белгіленген есептеу маңайының иерархиясы көрсетілген. Кесте 1 Суреттің кадрындағы «0» элементінің иерархиялық реттегі конфигурациясы 9 8 7 6 7 8 9 8 5 4 3 4 5 8 7 4 2 1 2 4 7 6 3 1 0 1 3 6 7 4 2 1 2 4 7 8 5 4 3 4 5 8 9 8 7 6 7 8 9 «1» бірінші реттік маңайды білдіреді, ол үшін элементтердің арасындағы ара-қашықтық 1-ге тең. «2» екінші реттік маңайды білдіреді, оған «0» центрлік нүктесінен бастап ара қашықтығы 2 -ге тең болатын диагональды элементтер жатады. Үшінші реттік маңай центрлік элементтен 2-ге тең ара қашықтықта орналасқан элементтермен белгіленеді және т.с.с. Кесте 1-мен сәйкес кадрдың фрагментінің (терезесінің) центрлік есептемесінің маңайының конфигурациясы бастапқы есептемеден арақашықтықтың артуы бойынша иерархияны қалыптастырады. Бұл маңай тек жақын көршілестерден ғана құрала алады, бірақ кадрдың одан да жеткілікті көп элементтерінен де тұра алады. Үлкен өлшемдегі маңайды қарастыру кезінде кейде центрден алыста немес жақында орналасқан 14 нүктелердің сигналға әсер ету дәрежесі анықталады. Бұл сигнал кадрдың осы нүктесіндегі сүзгісінде шығады. Осылайша, сүзгілеу идеологиясы осы нүктенің мәліметтерін де, оның маңайындағы мәліметтерді де пайдалануға негізделеді. Жоғарыда қарастырылған элементтік процедуралардан сүзгілеудің айырмашылығын осыдан-ақ байқауға болады: сүзгілеуді суретті өңдеудің элементтік процедурасы деп қарастыра алмаймыз [8]. Дәстүрлі сүзгілеу жиіліктік салада түрлендірудің келесі реттілігін орындауды талап етеді: - суретті кеңістіктік облыстан жиіліктік облысқа екі өлшемді дискретті түрлендіру (мысалы, Фурье дискретті түрлендіруінің көмегімен); - сурет сигналының дискретті спектрін түрлендіру; - кеңістіктік облыста суреттің пайдалы сигналын қайта қалпына келтіруге мүмкіндік беретін кері екі өлшемді дискретті түрлендіру. Мұндағы қойылатын міндет – ең жақсы нәтижелерді алуды қамтамасыз ететін есептегіш процедураны табу. Жалпы, көбінесе, бұл міндетті шешу кезінде суреттің ықтимал модельдері мен бөгеуілдерді қолдануға, сонымен қатар оңтайлылықтың статистикалық критерийлерін қолдануға сүйенеді. Бұның себептерін түсіну қиын емес – бұл пайдалы сигнал мен бөгеуілдерді орналастырудың кездейсоқ заңдары болып табылады және өңдеу нәтижесінің идеалды сигналды өңдеу нәтижесінен орташа айырмашылығын алуға тырысады. Әдістер мен алгоритмдердің көп болуы сигналдарды сипаттау үшін қолданылатын түрлі математикалық модельдерге әсер ететін сюжеттердің әр алуандығымен байланысты. Оны қоспағанда, оңтайлылықтың түрлі критерийлерін пайдалану да сүзгілеу әдістерінің көптігіне алып келеді. Ақыры, тіпті модельдер мен критерийлер сәйкес келгеннің өзінде, жиі математикалық қиындықтардың кесірінен оңтайлы процедураны табу қиынға соғады. Нақты шешімдерді табу қиын болғандықтан, түрлі әдістер мен процедуралардың алуан түрлі нұсқалары туындайды. Суреттерді цифрлік өңдеу практикасында маскалық сүзгілеу кеңінен қолданылады. Оның сызықтық түрі сүзгінің соңғы импульстық сипаттамасының (СИС) екім өлшемді сүзгі нұсқаларының біріне жатады. Маска ретінде S маңайының барлық нүктелерінде белгіленген көптеген салмақтық коэффициенттер пайдаланылады, олар әдетте кадрдың ағымдағы нүктесін симметриялы қоршайды. Практика жүзінде жиі қолданылатын маңайдың кең тараған түріне центрде ағымдағы элементі бар 3×3 квадраты жатады. Түрлі маскалар қолданылып, эвристикалық нұсқаларының біріне барлық тоғыз салмақтық коэффициенттері 1/9-ге тең біртекті маска жатады. Коэффициенттерді бұлай таңдау орташа жарықты сақтау шарттарына жаауап береді, сол себепті шығатын сигнал кіретін сигналдың диапазонына кіріктірілген болады. Сүзгілеу процедураларын қолдану суреттегі шуылдың деңгейін әлдеқайда төмендетуге алып келеді [9]. Цифрлік суреттерді кодтау әдістері. Суретті көрсету үшін қажетті мәліметтердің көлемін кішірейтуге мүмкіндік беретін цифрлік суреттерді кодтау әдістерін қарастырайық. Суреттің цифрлық сигналын жіберу үшін 15 жіберу жылджамдығы жоғары арналар қажет. Сығымдау алгоритмдеріне деген жоғары қызығушылық ақпараттың кең көлеміне байланысты каналдарымен жіберу және ақпаратты сақтау мен қорғаныстың тиімділігін қамтамасыз ету қажеттілігінен туындаған. Цифрлық технологияларға ауысу стенографияның заманауи әдістерін тиімді пайдалануға мүмкіндік береді. Ақпаратты қабылдайтын адам бақылаушы болғандықтан, кодтау әдістері де адамның көзбен көру жүйесінің ерекшеліктерін есепке ала отырып жасалған. Көру жүйесінің психологиясы мен физиологиясының деректері суретті жақсарту үшін ғана емес, суретті кодтау үшін де бастапқы негіз болып табылады. Кодтау әдісі теріс ақпарыттың тым артық көлемін алып тастау қағидасы бойынша орындалады. Мәселенің осы аспектілеріне нақтырақ тоқталып өтейік [10]. 1.2 Сүзгілердің жұмысына талдау жасау Шуылдармен күресудің ең кең тараған әдістерінің біріне сүзгілеу жатады. Суреттерді сүзгілеу дегеніміз – кейбір ережелер бойынша бастапқы суретпен бірдей өлшемде алынған суретті жасайтын операция. Әдетте нәтижелік суреттің әрбір пикселінің қарқындылығы (жарықтығы) бастапқы суретте оның жанында орналасқан пиксельдердің қарқындылығына байланысты болады. Сүзгілеуді орнататын ережелерді сүзгілер деп атайды, олардың әр алуан түрлері бар. сондай-ақ, айта кетерліктей, ұсынылған анықтамаға сәйкес, екі немесе одан да көп сүзгілеуді кезектесіп қолданатын операция да сүзгілеуге жатады. Осылайша, қарапайым сүзгілерден құрамдас сүзгілер құралады. Ақпараттың екі өлшемді болатын ерекшеліктеріне байланысты, суреттерді сүзгілеу үшін екі өлшемді сүзгілер қолданылады, олар жазықтықтағы түрлі кескіндемегі апертура (маска) түрінде болады. Апертураның әрбір элементінің өз саны болады, бұл сан салмақтық көбейткіш деп аталады [11]. Дәстүрлі түрде сүзгінің апертурасын солдан-оңға және жоғарыдантөменге бір пиксель бойынша орнын алмастыру арқылы жүзеге асады. Апертураның әрбір орналасуында бір типті операциялар орындалады, яғни, салмақтық көбейткіштер бастапқы суреттің сәйкес жарық мәндерімен көбейтіледі және алынған нәтижелер қосылады. Алынған мән алдын ала белгіленген сан нормаландырушы көбейткішке бөлінеді, ал содан соң нәтижелік мән апертураның орталық элементіне беріледі. Бұл сүзгінің «шығуы» деп аталады. Сүзгінің терезесі бейнеленіп, оның суретпен өзара әрекеттесуі мен сүзгінің шығуын есептеу көрсетілген (сурет 3). 16 Сурет 3 Сүзгілердің жұмыс қағидасы, терезелерінің өлшемі 3×3. Орталық элемент бір мағыналы алынатындай болып апертураның өлшемі алынады. Маскалардың ең таным ал өлшемдері - бұлар 3×3 және 5×5. Жергілікті сүзгілеу термині апретураның өлшемі бастапқы (сүзгіленетін) суреттің өлшемінен кіші екенін дәлелдейді. Олай болмаса, сүзгілеу ғаламдық деп аталады. Сызықтық сүзгілер жай ғана математикалық сипаттамасы бар сүзгілердің туыстығын білдіреді. Оған қарамастан, олар әр түрлі әсерлерге қол жеткізуге мүмкіндік береді. Мысалы, пиксельдерінің қарқындылығы A(x, y) болатын A жартылай тондық сурет бар деп есептейік. Сызықтық сүзгі F нақты мәндік функциясымен анықталады, ол растрде белгіленіп, сүзгінің ядросы деп аталады, ал дискреттік тұқырту (салмақтық қосынды) операциясының көмегімен сүзгілеудің өзі орындалатын болады. B( x, y ) i j F (i. j ) A( x i, y j ). (3) Оның нәтижесінде B суреті алынды. Бұл формулада қосындының шектері анықталған жоқ. Әрбір B(x, y) пикселінің мәні N терезесінде жатып, (x, y) нүктесінде центрі орналасқан (оны N(x, y) деп белгілейік) терезеде жататын A суретінің пиксельдерімен анықталады. N тіктөртбұрыш мағайында белгіленген сүзгінің ядросы 𝑚𝑚×𝑛𝑛 матрицасы ретінде қарастырылады, оның жақтарының ұзындығы тақ сандар болып табылады. Мысал ретінде H тіктөртбұрыш апертурасын келтіруге болады: 1 1 1 H 1 2 1 (4) 1 1 1 Сонда «y» сүзгісінің шығу мәні келесі формуламен анықталады: y 1 ( xi 1, j 1 xi 1, j xi 1, j 1 xi , j 1 2 xi. j xi , j 1 xi 1, j 1 xi 1, j xi 1, j 1 ) 10 (5) мұндағы xi , j – сүзгінің апертурасына түскен бастапқы (кіретін) суреттің элементтері 17 X i 1, j 1 X X i , j 1 X i 1, j 1 X i 1, j X i, j X i 1, j X i 1, j 1 X i , j 1 X i 1, j 1 (6) Сандық сүзгілер сүзгілеуді орындау қағидасы бойынша екі классқа бөлінеді – рекурсивті және рекурсивті емес (қарапайым) сүзгілер. Сүзгілеудің қарастырылған түрінде y сүзгісінің мәні тек X сүзгісінің шығу мәнімен ғана анықталып, рекурсивті емес болды. Рекурсивті сүзгілерде y-тің шығу мәндері X сүзгісінің шығу мәндерімен ғана емес, сондай-ақ сәйкес шығу мәндерімен де анықталады [12]. Ең қарапайым сызықтық кеңістіктік сүзгінің шығуы дегеніміз сүзгінің маскасымен жабылған маңайдағы элементтердің орташа мәні болып табылады, ал сүзгінің өзі тегістейтін немесе орташалаушы болады. Суреттегі элементтердің бастапқы мәндері сүзгі маскасы бойынша орташа мәндерге алмастырылғанның арқасында жарықтық өзгерістері азаяды. Осы арқылы келесі әрекеттер орындалады: - жарықтың қатты өзгерістерімен сипатталатын шуылдың басылуы; - цифрлеу кезінде немесе жарықтың жеткіліксіз деңгейінде түрлендіргенде туындайтын жалған пішіндерді тегістеу; - суреттегі «болмашы» бөлшектерді басу, яғни, сүзгінің маскасының мөлшерімен салыстырғанда кіші болатын пиксельдердің жиынтығын басу. Осындай сүзгілердің жұмысы кезіндегі жағымсыз әсерге жарықтық мәндерінің кенет өзгеруімен сипатталатын пайдалы пішіндерді фокустандыру жатады. Екі суреттер көрсетілген – бастапқы сурет және оның 3×3 өлшемді орталандырушы сүзгімен сүзгіленген кескіні (Сурет 4). Сурет 4 Бастапқы сурет және оның сүзгіленген нұсқасы. 18 3×3 өлшемді сүзгінің апертурасы бейнеленген, ол бастапқы суреттің бөлігін және сүзгіленген нұсқасының пикселін қамтиды, оның мәні 3×3 сүзгісінің «шығуымен» теңестіріледі (Сурет 5). Сурет 5 Бірінші жағдайда өзгеретін пиксельге сүзгінің орналасуы. Дәл сол аппертура бейнеленген, бірақ ол бір пиксель оңға жылжытылған (Сурет 6). Сурет 6 Екінші жағдайда өзгеретін пиксельге сүзгінің орналасуы. Элементтерінің әр түрлі мәндері мен нормалаушы коэффициенттері бар сүзгінің мысалы ретінде 3×3 маңайы бойынша екі тегістеуші сүзгілер көрсетілген (Сурет 7). а) б) Сурет 7 Тегістеуші сүзгілердің маскалары. а) апертура элементтерінің барлық мәндері бірге тең, б) орталық элементтен алыстаған сайын апертура элементтерінің мәндері азаяды. 19 Олардың біріншісі бейнелеген маска бойынша орташа мәнді қалыптастырады, ондағы сүзгінің шығуы келесі формула арқылы анықталады (сурет 8): R 1 9 zi 9 i 1 (7) Сурет 8 Орталық пиксельді орташалау. Сүзгінің коэффициенттері 1/9 орнына бірлік ретінде көрсетілген. Себебі компьютерлік есептеулерде қосу процесі аяқталғаннан кейін алынған мән 9-ға бөлінгендіктен, осы нұсқа ең тиімді болып табылады. Өлшемдері 𝑚𝑚×𝑛𝑛 болатын масканың 1/тп-ге тең нормалаушы коэффициенті бар. Барлық коэффициенттері бірдей болатын кеңістіктік сүзгі біртекті орталаушы сүзгі деп аталады. Екінші маска өлшенген орташаны қалыптастырады (Сурет 7 б). Бастапқы суреттегі элементтердің мәндері әр түрлі коэффициенттерге көбейтіледі. Сәйкесінше, түрленген суреттегі пиксельдердің жарықтығы бастапқы суреттегі пиксельдердің орналасуына тәуелді болады. Бұндай сүзгілеу біртекті емес деп аталады. Масканың ортасындағы коэффициент ең үлкен болып табылады және есептеу кезінде орталық пиксельді өте маңызды етеді. Масканың центрінен алыстаған сайын маскадағы өзге коэффициенттердің мәндері азаяды. Коэффициенттердің бұлай орналасуы тегістеу кезінде фокусталуды азайту үшін жасалған. Тегістеуші сүзгілер суретке бұлдыр әйнек сияқты әсер береді: сурет анық емес, бұлдыр болып өзгереді. Бұл сүзгіге тән ерекшелігі – қара фондағы ақ нүкте ретінде сұр квадрат есептеледі. Сүзгілеу терезесі үлкен болған сайын шуылдың орташаланған қарқындылығы азая түседі, бірақ бұл кезде суреттегі маңызды элементтер де бұлдыр болып өзгереді [13]. Адамның көру жүйесінің ерекшеліктері Адамның көру жүйесінің (КЖ) қасиеттерін 2 топқа бөлуге болады: төменгі деңгейлі («физиологиялық») және жоғары деңгейлі («психофизиологиялық»). Өткен ғасырдың 90-жылдарына дейін зерттеушілер көбінесе көрудің төменгі деңгейлі қасиеттеріне ғана назар аударып келді. Соңғы жылдары КЖ-нің жоғары деңгейлі сипаттамаларын да есепке алатын модельдерді құрастыру тенденциясы байқалады. Суреттегі шуылдың байқалуына әсер ететін үш ең маңызды төменгі деңгейлі қасиеттер: суреттегі жарықтың өзгерісіне сезімталдық; жиіліктік 20 сезімталдық; маскалау әсері. Жоғары деңгейлі қасиеттердің төменгі деңгейлі қасиеттерден айырмашылығы – олар «екінші реттік» болып әрекет етеді. КЖнен ақпаратты өңдеген ми оны суретке қарай «икемдеу» командаларын береді [14]. КЖ-ның негізгі қасиеттері: - кереғарлыққа сезімталдық. Суреттің жоғары кереғарлы бөліктері, жарықтың өзгерістері өзіне көп назарды аудартады; - өлшемге сезімталдық. Суреттің үлкен облыстары «кіші» облыстарына қарағанда бірден көзге түседі. Бірақ өлшемді одан әрі үлкейтуді тежейтін қанықтық шегі болады; - формаға сезімталдық. Ұзын және жіңішке объектілер дөңгелек және біртекті объектілерге қарағанда көп назарды аудартады; - түске сезімталдық. Кейбір түстер, мысалы, қызыл түс, өзге түстерге қарағанда көзге бірден сезіледі. Әсіресе, артқы жақтағы фон ондағы кескіннің түсіне қарама-қарсы болса, бұл әсер жақсы байқалады; - орналасуға сезімталдық. Адам ең біріншіден суреттің центрін байқауға икемді. Адамдар көбінесе арттағы кескінге қарағанда алдыңғы кескінді бірінші байқайды. Егер суретте ададар болса, онда сол адамдар бірінші көрінеді. Суретте адам ең алдымен бетке, көздерге, қолдарға, ауызға назар аударады; - сыртқы тітіркендіргіштерге сезімталдық. Бақылаушы көзінің қозғалысы суретті қараудан бұрынғы немесе нұсқаулықты алудан бұрынғы нақты жағдайға немесе қосымша ақпаратқа байланысты болады. КЖ орналасуы, өлшемі, көз торында орналасуы бойынша, түрлі жарығы мен түсі бойынша объектілерді бір санатқа топтастыра алады. Әр түрлі өзгерістерге қатысты осы әр алуандық қасиеті КЖ-нің көп арналығымен анықталатын жергілікті белгілерге талдау жасаумен толықтырылады. Көптеген клиникалық, психофизикалық және мінез-құлықтық зерттеулер көрсеткендей, мысалы, объектінің формасы көрі өрісінегі объектінің өлшеміне, түсі мен орналасуына қарамастан таныла алады. Әрбір компонентте болатын сипаттамалар: суреттегі кеңістіктік орналасуы, суреттің жиілігі, сигналдың бағыты (горизонталь, вертикаль, диагональ бағытта); - көру өткірлігі. Көру өткірлігі осы объектінің формасын анықтау байланысатын мәтіндік объектінің ең кіші элементінің өлшемімен анықталады. Көру өткірлігі суреттің кереғарлығына, фонның жарықтығына және тестті ұсыну уақытына байланысты болады. КЖ ажыратымдылығының шектеулері көз бен көз торының оптикалық қасиеттеріне тәуелді. Астигматизмде ажыратымдылық объектінің орналасу бағытына тәуелді болуына алып келеді. Сфералық және хроматикалық аберрациялар кескіннің фокусталуына әсер етеді. Қарашықтың шекарасында жарықтың дифракциясы объектілердің шекараларын бұзуға әкеледі. Көрудің өткірлігін тексеру үшін Рэлей критерийі қолданылады, оған сәйкес егер объектінің бір суретінің дифракциялық максимумы өзге суреттің дифракциялық бірінші минимумымен сәйкес келсе, екі нүктелер немесе екі сызықтар бөлек объектілер ретінде қабылданады. Көрудің өткірлігі ажыратымдылықтың ең кіші бұрышымен анықталады. 21 Ажыратымдылықты өлшеуге арналған негізгі объектілерге екі нүктелер, екі сызықтар, параллель сызықтардың торлары, шахматтық тақтай типіндегі үлгілер жатады. Ландольт дөңгелегінің көмегімен көру өткірлігін тексеру кезінде 1 бұрыштық минутқа тең ажыратымдылық көру өткірлігінің қалыпты екенін білдіреді. Көздің торында бір бұрыштық минут бір шағын колбаның өлшемінен асады, оның өлшемі фоеволаның центрінде 0,4-0,6 бұрыштық минутты құрайды, сәйкесінше, ол колбаның өлшемімен емес, дифракциямен шектеледі. Көру өткірлігіне көз торының әртектілігі үлкен әсерін тигізеді. Центрдені колбалар жақсы тығыздалған, таяқшалар жоқ. Центрден периферияға қарай алысқа қашықтаған сайын колбалардың арасындағы ара қашықтық артып, олардың арасына одан да көбірек таяқшалар орналасады. Алайда ең қашықтағы периферияда функционалдық қолданысы анықталмаған колбалародың қабаты орналасады. Тордың бұндай құрылымы центрден периферияға алыстаған сайын көру өткірлігінің төмендеуін білдіреді. Демек, көру өрісінің центрімен геометриялық байланысқан фоевола суреттің шағын бөлшектерін анықтауды қамтамасыз етеді; - керағарлық жасыру. Өзге сигнал бар болған кезде бір сигналдың анықтау қабілеттілігі; - жиілікке сезімталдық. КЖ-нің ең жоғары сезімталдылығы 2-ден 10 циклдерге/градусқа дейінгі орташа жиіліктердің арасында байқалады. Жоғары жиілік облысындағы сезімталдық көздің оптикасымен және тордағы фоторецепторлардың дискреттілігімен шектеледі. Төменгі жиілікті облыста сезімталдықтың төмендеуі жүйке жүйесінің мазасыздануынан туындайды: рецептивті өрістердің өлшемдері мен стимулдың әрекеті кезінде тежелу; - жарыққа сезімталдық. Тұрақты фонда шуылды анықтау қабілеті. Текстураларды сипаттау. Түс пен текстура суреттің маңызды сипаттамалары болып есептеледі. Түсті текстураларға талдау жасау қиындығына түсті текстураларды сипаттау, оларды жіктеу, яғни, кластерлерді түзу (бұл жерде кластер деп сипаттау саласында туындайтын объектілердің тобы, облысы айтылады), сегменттеу, яғни, суретті бір немесе бірнеше сипаттамаларға қатысты біртекті болатын немесе бір кластерге жататын облыстарға бөлу жатады. Харалик текстураларды сипттаудың екі тәсілін бөліп көрсетеді: статистикалық және құрылымдық. Бүгінгі күні текстураларды сипаттаудың үшінші фрактальды тәсілі де тараған деп айта аламыз. Бұл тәсілдерді нақтырақ қарастырып өтейік [15]. Түсті координаталық кеңістіктерде түсті текстураларды сегменттеу әдістері Біз түстің объектілердің маңызды сипаттамасына жататыны туралы айттық. Түсті текстураларды сегменттеу кезінде кластерлердің формасы мен орналасуы түстік координаталық кеңістікке байланысты болғандықтан, авторлар түрлі түсті координаталық кеңістіктерде түстік текстураларға талдау жасайды. Түстік координаталық кеңістікті таңдау сегменттеудің әдісін таңдау сияқты маңызды болып табылады. Сол себепті мақалалардың аналитикалық 22 шолуында авторлар таңдаған түстік координаталық кеңістікті көрсететін боламыз. Жұмыста авторлар түсті суреттерді сегменттеу үшін сигналдың компоненттерін үйлестірудің көп өлшемді гистограммалары бойынша кванттау шектерін таңдайды. RGB, YIQ және HSI үш түстік координаталар кеңістіктері үшін алынған тоғыз компоненттер бойынша талдау жасалады. Демалу үшін арналған бөлменің суретіне зерттеу жасалады. Бұл жерде авторлар, ең алдымен, суреттің текстуралық бөлігіне сегменттеуді орындайды. Содан соң тестурасы жоқ суреттің бөліктері үшін көп өлшемді шектік шектеуге негізделіп, түс бойынша сегменттеу орындалады. Олай болмаса, осындай әдісті қолданғанда біртекті текстуралы облыстар көптеген жеке облыстарға бөлініп кететін еді. Мұнда авторлар реңктің компонентін ең ақпараттық компонент деп атады. Түстік кеңістіктік текстуралардың синтезі. Текстураларды сегменттеуді орындап жатқанда кластерлеудің белгілері мен алгоритмдерінің жүйесін құрастыру тиімділігін тексеру үшін түсті текстуралардың үлгілерін құрастырған кезде текстура синтезі қолданылады. Текстуралардың синтезінің бірыңғай әдістері түрлі мекемелерде құрастырылған түсті текстураларға талдау жасау әдістерін салыстыруға мүмкіндік береді. Суретті жеке облыстарға бөлу кезіндегі кластерлеудің сәтті болуы көбінесе текстураға талдау жасау кезінде белгілерді таңдауға байланысты болады. Түсті текстуралардың белгілерін таңдау осы текстураларды жіктеу орындалатын сипаттамаларға негізделеді. Түсті текстура таңдалған түсті координаталық кеңістікпен сипатталады, ал оның жарықтығы құрылымдық, статистикалық немесе фрактальдық тәсілдердің көмегімен сипатталады. Текстураларды сипаттауға статистикалық және фрактальдық тәсілдерді таңдау дұрыс саналғандықтан, текстуралардың синтезі де осы сипаттамаларға сүйенуі қажет [16]. Түсті текстуралық суреттерді сегменттеу. Түсті текстураларды сегменттеу деп суретті кейбір сипаттамалары бойынша біртекті облыстарға, яғни, бір кластерге жататын облыстарға кеңістіктік бөлу процесін айтамыз. Сегментация процесіне дейін текстураларды зерттеуге негізделетін және өз кезегінде, текстураларды сипаттауға сүйенетін белгілер кеңістігін қалыптастыру процесі орындалады. Түрлі түстік сипаттамаларға ие текстураларды түстік белгілері бойынша бөлуге болады. Түсті текстураларды сегменттеу кезінде әрі объектінің арнайы қасиеттерін, әрі кеңістіктік қасиеттерін де ескеру қажет. Онымен қоса түстік белгілердің ішінен реңк компоненті ең көп ақпаратты береді. Бірақ суретті тек реңк компоненті бойынша ғана бөлу жеткіліксіз болып табылады, себебі бір реңкті, бірақ жарықтығы әр түрлі объектілер бөлек объектілер болып анықталады. Мысалы, сары немесе қоңыр түске боялған объектілер бақылаушы үшін әр түрлі болып көрінеді. Қанықтығы әр түрлі объектілер туралы да солай деуімізге болады. Түрлі түсті белгілерден тұратын көптеген шағын облыстардан құралған күрделі суреттерде гистограммалардан айқын құлауы болмайды, бұл өз кезегінде шектерді анықтауды қиындатып, сегменттеу 23 қателіктеріне алып келеді. Соған байланысты көп өлшемді шектік тежеудің негізінде түс бойынша сегменттеу осы қағидамен ұштасады. Сол себепті алдымен реңк компоненті бойынша суретке сегменттеуді орындап, содан кейін кластердің центрінен суреттің элементінен ең аз қашықтықтағы критерий бойынша К-ішкі топтық орташа шамалар әдісі бойынша кластерлеу алгоритмін жүргізіп, одан кейін H, R, G немесе B компоненттерінің гистограммалары бойынша кластерлерді сегменттеуді орындаған дұрыс деп саналады. Шектеулерді таңдау кезінде қателерді азайту мақсатымен компоненттерді үйлестіру гистограммасын кластердің кеңістіктік қасиеттерін есепке ала отырып бағалаған жөн. Осы мақсатпен байланысты компоненттердің алдын ала іріктеуі жасалып, іріктемеге облыстың белгілеген өлшемінен артатын комопоненттер ғана енеді. Содан соң кластерлердің бастапқы көптігін анықтағанға дейін К-ішкі топтық орташа шамалар әдісі бойынша суреттің элементтерін кластерлеу орындалады. Ұсынылған алгоритмнің кеелсі қасиеттері бар: сегменттеу мен кластерлеуді үйлестіру суреттің әрі кеңістіктік, әрі түстік қасиеттерін ескеруге мүмкіндік береді; кластерлердің саны алдын ала белгіленбейді, өңделетін суреттің құрамындағы ақпаратқа сәйкес өңдеу барысында есептеледі; фрагментарлық әдістерде сегменттің шекарасын анықтағанда шекараны анықтау дәлдігі фрагменттің өлшеміне байланысты болса, ал бұл әдісте дәлдік растр элементіне дейін өте нақты орындалады. К-ішкі топтық орташа шамалар әдісі жергілікті қосылады және жаңа кластерлерді тудырмайды, сондықтан оны қолданудың сәтті болуы белгілердің кеңістігін бастапқы бөлуге, біздің жағдайымызда сигналдың R, G, B компоненттерінің мәнін бөлуге байланысты болады. Алгоритмдердің қосылуына ең жақсы жағдайларды жасау үшін біз бастапқыда шектік шектеу әдісі бойынша бөлуді орындаймыз, бөлуге кететін уақытты қысқарту үшін реңк компонентін үйлестіретін гистограмманы пайдаланамыз. Түсті текстуралар белгілерінің фрактальдығына баға беру. Адам құрастырған өндірістік ғимараттар мен тұрғын үйлерді куб, сфера, цилиндрлер, конустар сияқты қарапайым геометриялық фигуралардың жиынтығымен оңай сипаттауға болады, бірақт абиғи шығу текті түсті текстураларды бұлай сипаттау қиынға соғады. Белгілер жүйесіне геометриялық белгілерді қосқан кезде шашыраудың тең шамалы эллипсі, оның үлкен және шағын осьтерінің өлшемі сияқты аппроксимациялаушы кейбір бағалар пайдаланылады. Сол себепті осындай текстураларға талдау жасау үшін оларды фракталының өлшемі D болатын фрактальмен көрсеткен дұрыс саналады. Қазіргі кезде фракталдың нақты анықтамасы жоқ. Фракталдың өзекті тұжырымдамасы фракталдың өлшемін анықтауда оған ұқсас фракталды пайдалануға негізделеді. Бүгінгі күнде фракталдар аэроғарыштық түсірілімнен алынған ландшафттардың текстураларын талдауда, ұнтақ пен өзге де борқылдақ құрылымдарды талдауда, бұлттың үстін талдау және т.б.-да қолданылады. 24 Бірақ түсті текстуралы фрактальдың өлшемі көбінесе бағалау әдісін таңдауға байланысты болып келеді. Осылай, фракталдың өлшеміне баға беретін түрлі әдістерді пайдаланған кезде біз сәйкесінше оның түрлі өлшемдерін аламыз. Дәл бір әдісті (әдістердің тобын) қолданған кезде текстураларды салыстыруға болады. Онымен қоса, барлық текстуралар фрактальдың өлшемі бойынша ажыратылмайды. Сол себепті, белгілердің жүйесіне фрактальдың өлшемін енгізбестен бұрын, текстураның фрактальдылығын анықтап алу керек. Текстураның фрактальдылығына баға беру фрактальдың өлшеміне баға беру үшін таңдалған әдістің негізінде жасалады. Фрактальдың өлшемі іріктемелі регрессия бағасымен есептелгендіктен, кездейсоқ өлшемнің логарифмі мен белгіленген қадам функциясының логарифмі арасындағы корреляция коэффициенті бойынша текстураның фрактальдылығы бағаланады. Бұл жерде текстураның фрактальдылығы туралы шешім келесі жолмен қабылданалды: - корреляцияның қадамға тәуелділігің коэффициентін құрастыру; функция максимум болатын қадамның мәні дегеніміз – бұл фрактальдың өлшеміне баға беру кезінде белгіленетін қадамдар диапазонындағы максималды қадам; - фрактальдың бағасы тәжірибелердің сериясында орташа мән ретінде қолданылатын әдістерде корреляцияның коэффициенті төмен болса, фракталдың өлшеміне баға беруді ескермеу; - корреляция коэффициентнің мәні < 0,7 болғанда текстураларды сегменттеу үшін белгілер жүйесіне фракталдың өлшемін қоспау. Фрактальдың өлшемі бойынша сегменттеу кезінде текстураның фрактальдылығына баға беру маңызды сипаттама болып есептеледі [17]. 1.3 Суреттерді өңдеу жүйелерінің құрылымы Суреттердің компьютерлік талдауында есептеулердің көлемі суреттің өлшемінің квадраты мен осы суреттің талданатын спектрлік арналарының санына тікелей пропорционалды болып табылады. Соған байланысты қажетті өлшем қуатын қамтамасыз ету үшін өткен жылдары суреттерді өңдеу әдістері үлкен ЭЕМ-ді немесе арнайы өңдеу жүйелері бар кішкентай ЭЕМ-ді қолданатын еді. Бірақ қазіргі кезде дербес компьютерлердің қуаттылығының үздіксіз артуына және RISC-архитектуралы жұмыс станцияларының жоғары қолжетімділігіне байланысты суреттерді өңдеудің жаңа математикалық әдістері мен алгоритмлерін құрастырып, оларды қолданбалы автоматтандырылған жүйелерге енгізу мүмкіндігі туындады. Осы аталған факторлардың бірігуінің арқасында дербес компьютерлердің көмегімен жүзеге асырылатын және қанағаттанарлық уақыттық сипаттамаларға ие болатын суреттерді өңдеу жүйелерін құрастыруға болады. Бұндай жүйелерді жартылай тонды және түсті аэрофотосуреттерді, стереобейнелерді, картографиялық және символдық ақпаратты, түрлі 25 қырлардағы Жердің суреттерін, рентгендік түсірілімдерді және т.б.-ны өңдеу үшін қолдануға болады. Суреттерді өңдеу жүйелері әр түрлі мақсаттарда қолданыла алады – нақты класқа жататын объектілерді анықтау және табу, мәтіндік ақпараттарды енгізу және анықтау, карталардың ақпараттық мазмұнын оқу, мекен-жайлардың ақпараты және т.б. Интерпретация мәселесін шешудің мінсіз шешімі – бұл күрделі енгізуді толықтай автоматтандыру және сәйкес қолданбалы тапсырмаларды шешу үшін барлық қажетті ақпараттарды әзірлеу. Алайда қазіргі кезде суреттерді анықтау теориялары бұл процесті толықтай автоматтандыруға мүмкіндік бермейді, яғни, зерттеушінің қалай да араласуына тура келеді. Сондықтан автоматтандыру жүйелерін құрастыру кезіндегі негізгі мақсат деп графикалық ақпаратты кодтау (цифрлендіру) бойынша адамның егжей-тегжейлі еіңбегінің көлемін барынша азайту деп айтуға болады. Анықтау процесін графикалық мәліметтерді бірінші деңгейден бастапқы сурет туралы ақпараттарды жалпылаудың жоғары деңгейіне ие екінші бір деңгейге біртіндеп ауыстыру деп қарастыруға болады. Бұл жағдайда өңдеудің соңғы мақсаты – бұл сканерден алынатын мәліметтерді алып, оларды қорытынды сандық өңдеу үшін және талап етілетін сипаттамаларға қол жеткізу үшін қажетті деңгейге дейін жеткізу. Осындай көзқарас тұрғысынан болжам жасайтын болсақ, анықтау барысында зерттеуші графикалық ақпаратты көрсетудің екі негізгі деңгейлерімен біртіндеп жұмыс жасайды: растрлық кескін мен векторлық кескін. Графикалық ақпаратты көрсетуді деңгейлерге бөлуден бөлек суреттерді өңдеу әдістері сонымен қатар кіретін мәліметтердің сипаты бойынша да бөлінеді: бинарлық сурет пен жартылай тондық сурет. Бірақ бұлай бөлу қалай болса да шартты болып қана табылады, себебі жартылай тондық суретті бинарлаудың көмегімен сапасын жоғалтып, бинарлы суретке алмастыруға болады. Қолданыстағы жүйелерде суреттерді өңдеу міндеттерін шешу үшін түрлі әдістемелік тәсілдер пайдаланылады. Ең жиі таралған бірінші тәсілге сәйкес сигналдарды өңдеу теориясының әдістерін суретке тасымалданады (екі өлшемді дискретті өрістер). Бұл әдістер жақсы ойластырылған теориялық негізден тұрады, алайда ол негізінен үздіксіз бір өлшемді сигналдар үшін арналған дәстүрлі математикалық көріністерден туындаған, сондықтан бұл әдістер екі өлшемді дискретті өрістерде өлшенуі жағынан өте күрделі алгоритмдерге алып келеді. Екінші тәсіл жергілікті операцияларды орындауға, соның ішінде жасушалық логика операцияларына негізделеді. Үшінші тәсіл интегралдық геометрия мен математикалық морфология әдістеріне негізделеді. Суретті екі өлшемді эвклидті кеңістіктегі көптеген нүктелер ретінде қарастыру суреттерді талдау алгоритмдерінің өте анық математикалық сипаттамаларын құрастыруға, объектілерді іздеу мен олардың геометриялық параметрлерін өлшеуге мүмкіндік береді. 26 Төртінші тәсіл аналитикалық геометрия әдісіне негізделеді және суреттердің сызықтық емес геометриялық түрлендірулерін орындауға мүмкіндік береді. Осы қарастырылған тәсілдердің кез келгенінде өзінің нақты бір артықшылықтары мен кемшіліктері, қолдану саласы мен шектеулері бар [18]. Суреттерді өңдеудегі негізгі түсініктердің біріне суреттерді өңдеу операциясы жатады. Барлық операцияларды өңделетін пиксельдердің санына байланысты үш топтарға бөлуге болады: - элементтік операциялар: қайта кодтау, арифметикалық және логикалық операциялар, жарықты түрлендіру; - жергілікті операциялар: жасушалық логика операциялары, тегістеу, сүзгілеу, контурларды белгілеу, математикалық морфология операциялары (эрозия, кеңейту); - ғаламдық операциялар: геометриялық түрлендірулер (бұру, масштабтау, координаттарды сызықтық емес түрлендірулер), спектрлік түрлендірулер (Фурье, Адамара және т.с.с.), жалпыланған сызықтық операторлар (цифрлік сүзгілеу). Элементтік операциялар бастапқы ақпарат ретінде суреттің бір элементін, ал нәтиже ретінде де бір элементті қолданады. Жергілікті операциялар бастапқы ақпарат ретінле сурет элементінің маңайын, нәтиже ретінде де бір элементті қолданады. Ғаламдық операциялардың бастапқы ақпаратына барлық суреттер немесе оның үлкен бір бөлігі жатады. Суреттердің көрініс беру формасын ескере отырып (растрлық және векторлық), суреттерді түрлендірудің келесі топтарын атауға болады: - растр-растр: суреттерді визуалдау; геометриялық түрлендірулер; статистикалық сипаттамаларды қалыптастыру; суреттерді біріктіру; кеңістіктікжиіліктік сипаттамалар; көп зоналы суреттердің өлшемін төмендету; көмескіліктерді сүзгілеу; - растр-вектор: контурлер мен скелеттерді белгілеу; суреттерді векторлау; текстуралық талдау; жіктеу мен кластерлік талдау; - вектор-вектор: геометриялық сипаттамаларды есептеу; контурларды аппроксимациялау; афиндік түрлендірулер; кеңістіктік бұрмалануларды жою; - вектор-растр: векторлар төбесінің графикалық координаттарын растрлық кескіннің графикалық координаттары жүйесіне ауыстыру; байланысты облыстарды жиектеу және белгіленген нүктелермен, контурлармен, облыстармен, математикалық функциялармен растрлық кескінді құру. Осы операцияларды жүзеге асыру алгоритмнің қиындығы N-нен бастап 3 4 N –N дейін қамтиды (мұндағы N – суреттегі элементтердің саны). Алгоритмдерді орындау кезіндегі негізгі қиындықтарға оперативті жадтың шектеулі көлемі мен ақпараттың көп мөлшерін өңдеуге көп уақыттың кетуі жатады. Сол себепті өңдеуді бөлшектеп орындауға тура келеді. Соған байланысты суреттерді өңдеу операцияларының маңызды сипаттамасына бұл операцияны одан қарапайымдырақ, бастапқы суреттің элементтерінің шектелген көптігінің элементтік операцияларына бөлшектеп байланыстыру 27 жатады. Өзге қиындығы – операцияларды орындау тәртібі, параметрлердің мәні көбінесе математикалық негіздеусіз эвристикалық жолмен анықталады. Дислокациялық құрылымшаларды векторлаудың тапсырмасына қатысты суретті өңдеудің келесі әдістерін атауға болады. Көмескіліктерді сүзгілеу. Өңдеудің бірінші сатысына суреттегі көмескіліктерді жою жатады. Бұл әрекет көмескіліктер анықтау сапасына кедергі келтірмеу үшін маңызды болып табылады. Суреттегі көмескіліктерді жоятын тәсілдердің көптеген түрлері бар. Жалпы олардың барлығы да маңайды талдауға негізделген, яғни олар көбінесе жергілікті әдістерге жатады. Алдымен бинарлы суреттерді сүзгілеу әдістерін қарастырып көрейік. Көмескіліктерді сүзгілеу үшін қолданылатын математикалық жабдықтардың біріне математикалық морфология жатады. Мысалы, тұйықтау операциясының көмегімен сызықтардың бөлінуін жоюға, объектілердегі бос орындарды толтыруға, контурларды тегістеуге болады. Осы операцияны қолдану арқылы жойыла алатын кемшіліктердің мөлшері құрылымдаушы элементтің мөлшеріне байланысты болып келеді. Оның диаметрі көп болған сайын – біз де соншалықты көбірек көмескіліктің мөлшерін жоя аламыз. Дегенмен құрылымдаушы элементтің мөлшерін шексіз арттыра беруге де болмайды, себебі, біріншіден, өңдеудің уақыты артады және, екіншіден, тұйықтауды орындаудың нәтижесінде бастапқы суретте болмаған объектілердің бірігіп кетуі де мүмкін. Сондықтан құрылымдаушы элементтің максималды мөлшеріне баға беру кезінде суреттегі объектілердің максималды жақындығын ескеру қажет. Енді екінші морфологиялық сүзгі, ашуды, қарастырайық. Бұл сүзгіде ең бірінші болып эрозия қолданғандықтан, ашудың нәтижесінде суреттегі «кір жерлерді» жоюға болады, яғни, диаметрі құрылымдаушы элементтің диаметрінің кішірек қажетсіз объектілерді алып тастауға болады. Бірақ негізінен ашу операциясын орындау қауіпті, себебі суреттегі өте жұқа сызықтарды өшіріп тастауға болады. Суреттің сапасын арттыруға арналған екінші тәсілге логикалық сүзгілеу жатады. Бұл әдіске сәйкес орталық элементтің мәні белгіленген маңайда осы орталық элементпен бір типті элементтердің мәніне тәуелді болады. Көбінесе 3×3 маңайы қолданылады. Белгіленген маңайда ақ және қара пиксельдердің 8 2 =256 түрлі жиынтықтары болуы мүмкін. Осы жиынтықтардың әрбіреуі үшін қандай да бір алдын ала шешім бар: осы нүктенің түсін өзгерту қажет пе немесе жоқ па. Жоғарыда қарастырылған алгоритмдердің үлкен кемшілігі бар, яғни, олардың жұмысы үшін көп уақыт қажет, себебі олар суреттегі барлық элементтерді рет-ретімен кезектестіріп қарап шығады. Көбінесе суреттің барлығын қарап шығудың қажеттілігі жоқ және оның объектілері мен кейбір маңайларын зерттеудің өзі жеткілікті болып жатады. Жылдам жұмыс істеуді арттырудың тағы да бір жолы – контурлық талдау мен контурлық көмескіліктерді азайту. Бинарлы суреттердің көмескіліктерін жою үшін суреттің жолақтарын өңдеу қағидасына сүйенетін бірнеше арнайы жылдам 28 әрекетті алгоритмдер бар. Бірінші алгоритм шағын көмескіліктерді жою үшін қолданылады (жалғыз дөңес және шығып тұрған жерлерді жою, жеке бөлінулерді және бос жерлерді толтыру). Бұл алгоритмнің ерекшелігіне кезектес процестің бір қарауы кезінде 3×3 маскаларын қолданатын логикалық сүзгілер әдісі мен 3×3 квадратымен параллель морфологиялық «тұйықтау» мен «ашу» операциялары әдісін біріктіру жатады. Екінші алгоритм бастапқы суретте болмауы тиіс шағын дақтар мен бос жерлерді тауып, оларды жылдам жою үшін пайдаланылады. Осы дақтар мен бос жерлердің ең кіші өлшемдері (тіктөртбұрышты сипаттайтын мөлшері) алдын ала белгілі болып, параметр ретінде орнатылған деп айтылады. Бұл алгоритм жолма-жол өңдеу барысында контурларды бақылау мен суретпен байланысқан компоненттерді белгілеу есебінен жүзеге асырылады. Егер контурдың белгіленген бөлігінің мөлшері талап етілген шектен артатын болса, онда бұл контурға белгі қойылады және әрі қарай оның жеңілдетілген өңдеуі орындалады. Белгіленбеген контурды бақылау аяқталғаннан кейін оның координаттарын іріктеу орындалады және жолақтардан осы контурды құратын сериялар логикалық түрде жойылады [19]. Әдетте кіретін мәліметтерге жартылай тонды цифрлік түрдегі суреттер жататын болғандықтан, растрлық суреттердің сапасын арттырудың басқаша әдістерін қолдану қажет болады. Суреттегі көмескіліктерді азайту сызықтық және сызықтық емес сүзгілеудің түрлі әдістерінің көмегімен орындалады. Сүзгілеу әдістері кейбір сүзгілерді қолданады және осы сүзгілер арқылы суретті тұқырта алады. Келесі сүзгілер ең жиі қолданылады: Маскамен тұқырту және орталандырушы сүзгі. Әдетте сүзгілеу сүзгіні ұсынатын маскамен тұқырту арқылы жүзеге асырылады. Жоғары сапалы және төменгі сапалы сүзгілеу үшін әр түрлі маскалар құрастырылған. Орталандырушы сүзгінің жұмысы осы пиксельдегі жарықтың мәнін пиксельдің, соның ішінде элементтің де 8-маңайы бойынша есептелген орташа жарығына ауыстыруды орындайды. Екі әдістің де кемшілігіне сатылы және аратісті функцияларды тегістеу жатады. Одан бөлек, өте жоғары жарыққа ие және көмескіленген пиксельдер өңдеудің нәтижесіне өздерінің ықпалын тигізеді. Медиандық сүзгі. Суреттің сапасын жақсартудың тағы да бір эвристикалық әдісі – медиандық сүзгілеу. Медиандық сүзгілеу сурет элементтерінің тақ сандарын қамтитын жылжымалы терезе болып табылады. Орталық элемент суреттің терезедегі медиандық элементтерімен алмастырылады. N элементтерінің медиандық дискретті реттілігі – N тақ болған кезде оның өлшемінен кіші немесе тең (N–1)/2 элементтер бар элемент жатады немесе оның өлшемінен артық немесе тең (N–1)/2 элементтер жатады. Медианлық сүзгі кейбір жағдайларда көмескілікті азайтуға ықпал етсе, өзге жағдайларда қажетсіз сигналды қосады. Медиандық сүзгі сатылы және аратісті функцияларға әсер етпегендіктен, бұл оның жақсы жағы болып табылады, бірақ 29 ол ұзақтығы терезенің енінің жартысынан азды құрайтын импульстық сигналдарды басады. Сүзгі сонымен қатар үшбұрышты функцияның төбесін тегістеуді де тудырады. Объектілердің орташа сызықтарын бөлу. Суреттің орташа сызықтарын (сұлбаларын) бөлу мәселесі алдын ала өңдеудің ең негізгі міндеттерінің біріне жатады. Орташа сызықтар объектілердің геометриялық ерекшеліктерін сипаттауға мүмкіндік береді және келесі өңдеу үшін қолайлы болып саналады. Бірнеше пиксель ені бар, біреулік ені бар сызықтар үшін түрлендіру процесін білдіретін жалпы термин ретінде «жіңішкелеу» терминін айтуға болады. Жіңішкелеу операцияларына әдеттегідей үш негізгі талаптар қойылады: - суреттегі объектілер мен фонның арасындағы байланыс сақталуы қажет; - орташа сызықтың шеттері олардың шынайы орналасуына барынша жақын орналасуы қажет; - объектілердің орталық сызықтары барынша анық бөлінуі қажет. Барлық қолданыстағы алгоритмдер осы талаптарды қанағаттандырады. Бұл алгоритмдерді идеясы немесе әдісіне байланысты шартты түрде бірнеше топтарға бөлуге болады. Алдымен бинарлық растрлық суреттермен жұмыс істейтін алгоритмдерді қарастырайық. Алгоритмдердің ең үлкен тобы суретте сұлбалардың нүктелері ғана қалғанға дейін объектілердің сыртқы қабаттарын немесе контурлық нүктелерін жою әдісіне негізделеді. Итеративті алгоритмдер масканы қолданады (әдетте өлшемі 3×3), бұл маска бүкіл сурет бойынша орнын ауыстырады және әр орын ауыстырған кезде орталық пиксельдің жаңа мәнін анықтау үшін суреттің сәйкес бөлігімен салыстырылады. Осылайша, бүкіл қабатты қараудың нәтижесінде объектінің бірнеше қабаттарынан бір (немесе бірнеше) элемент жойылады. Суретті қараудың саны және оның салдарынан итеративті алгоритмдердің жұмыс істеу уақыты суреттегі объектілердің максималды еніне байланысты болады. Осы топтағы алгоритмдерді екі класқа бөлуге болады: параллель және кезектес. Парарелль алгоритмдерде терезе бір уақытта барлық пиксельдерде орналастырылады және оны өңдеу кезінде пиксельдердің жаңа мәндері (осы итерация кезінде алынған) қолданылмайды. Кезектес алгоритмдердің жұмысында пиксельдер рет-ретімен өңделеді және соңғы ереже орындалмайды [20]. Кодталған суреттерді, нақтырақ айтсақ, интервалдық көріністі қолдануға негізделетін орташа сызықтарды бөлу алгоритмдері бар. Бұл алгоритдер жылдам әрекет етеді, бірақ кейбір жағдайларда құрастырылатын сұлбалардың сапасы жеткілікті жақсы емес болады. Жартылай тондық суреттерді жіңішкелеу бинарлы суреттерді жіңішкелеуден күрделірек болып табылады. Көптеген жағдайларда жартылай тондық суреттердің нақты шекаралары жоқ және олар аппараттық және нүктелік көмескіліктермен ерекшеленеді. Жартылай тондық жіңішкелеу алгоритмдерінің көбісі итерациялық болып табылады, яғни, тек сұлбасы ғана қалғанға дейін рет-ретімен объектінің шекарасындағы пиксельдердің мәндерін 30 жояды немесе кішірейтеді. Өңделетін пиксельді кішірейту немесе сақтау оның маңайының кескіндемесіне байланысты болады. Жіңішкелеу алгоритмдерін маңайды тексеру әдістемесі бойынша жіктеуге болады: жартылай тондық морфология немесе қашықтықтық түрлендіру қағидаларын пайдалануға негізделген алгоритмдер. Жартылай тондық морфологияға негізделген алгоритмдердің басым көпшілігі бинарлы суреттерді жіңішкелеуді жалпылау болып табылады, нақтырақ айтсақ: пиксельдердің бинарлық мәндерінің орнына олардың жартылай тондық жарықтары мен оны қоршаған пиксельдердің жарықтары қарастырылады. Қашықтықтық түрлендіруді қолданатын алгоритмдер шамамен ұқсас жарықталуға ие көптеген облыстарды талдайды. Бұл жағдайда сурет максимал көршілердің центрлері мен радиустарының жанында көрсетіледі. Операциялардың типі бойынша жіңішкелеу алгоритмдері кезектес және параллель деп бөлінеді. Кезектес алгоритмде пиксельдер әрбір итерациядағы нақты бекітіліген рет бойынша тексеріледі және пиксельді жою осы уақыт бойы орындалған барлық операцияларға, яғни, осыған дейінгі итерациялардың нәтижелеріне және өңделіп қойған ағымдағы итерацияның пиксельдеріне байланысты болады. Параллель алгоритмдерде тек ағымдағы итерацияға тәуелділік бар. Жіңішкеленген суреттерді векторлау. Бұл кезеңде жіңішкеленген сурет бастапқы графикалық материалдың объектілерінің топологиясын сақтайтын векторлық құрылымға алмасады. Яғни, объект өзіне сәйкес келетін кескінге өзгеруі керек. Векторлық кескіндерді алатын әдістерге келесі кластар жатады: қадағалау, сканерлеу және осы екеуінің жиынтығы. Үшінші топтың алгоритмдері әрбір суреттің артықшылықтарын сақтап, «жад пен уақыт» мәселесін шешуге қабілетті болғандықтан ең жиі қолданылады. Сканерлеуші және қадағалаушы әдістердің жұмысында сканерлеуші көріністің басында суретті алдын ала белгілеу орындалады. Жіңішкеленген растрдың әрбір пикселі маңайындағы сегіз пиксельдермен салыстырылып, талданады және нақты бір жолмен белгіленеді. Жіңішкеленген растрдың барлық қара (бірлік) пиксельдері нақты маңайда өздерін қоршаған пиксельдердің орналасуына байланысты соңғы нүкте, сызықтың элементі, түйіндік нүкте деп жіктеледі. Осылай белгіленген растрдің арасынан түйіндік және соңғы деп белгіленген пиксельдер таңдап алынады. Олардың координаттары жеке ауқымда есте сақталады. Содан соң осы нүктелерден бастап суреттегі объектілер қадағаланады және сәйкес құрылымдарда есте сақталады. Бұл кезде бастапқы суреттің векторлық сипаттауы құрылады. Егер бастапқы растрдың алғашқы сканерлеуі кезінде әрбір пиксель үшін жіңішкелеу итерацияларының санын белгілесе, ал векторлық сызықтық сипаттауда онымен қоса сызықтың ені деген қосымша анықтауышты енгізуге болады [21]. Сызықтарды сипаттау үшін Фриман кодтарының көмегімен тізбектік кодтау әдісін қолданатын векторлау алгоритмдері белгілі. Сұлбаның пиксельдері алдын ала келесідей кодталады: 0 – фонның пикселі, 1 – сызықтың 31 соңғы пикселі, 2 –аралық пиксель, 3 – түйіндік пиксель. 1 және 3 пиксельдерінен бастап сызықтар қадағаланады және Фриман тізбектері түрінде сақталады. Векторлаудың бұндай әдісі бастапқы суреттің топологиясын сақтау кезінде суретті сығымдаудың жоғары дәрежесін қамтамасыз етеді. Векторлау әдістерінің екінші класы сканерлеуші типтің алгоритмдерін құрастырады. Жіңішкеленген растрдың барлық байланысты пиксельдерін біріктіру бастапқы мәліметтерді бір рет қарау арқылы жүзеге асырылады. Оның нәтижесінде суреттегі барлық сызықтар, олардың жанасу, тармақталу мен қосылу орындары анықталады. Алгоритм үшін кіретін ақпарат ретінде жіңішкеленген сурет қолданылады, онда белгіленген орташа сызықтар сериялардың ұзындықтары ретінде көрсетіледі. Суретте векторлаудың нәтижесінде келесі элементтер бөлінеді: - ерекше нүктелер (соңғы немесе түйіндік); - байланысқан компоненттердің ерекше нүктелермен шектелген бөлшектері (сегменттер). Векторлау кіретін суретті бір рет қарау арқылы орындалады және екі негізгі операциялардан тұрады: сканерлеу режимінде жағдайларды өңдеу және бөлшектерді қадағалау. Полигоналды аппроксимация. Объектілердің алынған векторлық көрінісі оның метрикасы көзқарасы тұрғысынан артық болып табылады және сығымдалуды қажет етеді. Сығымдау үшін көптеген әдістер құрастырылған, оларды екі топқа бөлуге болады: бірінші реттің функцияларына негізделген әдістер (полигоналды аппроксимация) және екінші және одан да көп дәреженің функцияларына негізделген әдістер. Полигоналды аппроксимация форманы талдау мен суреттерді жіктеу үшін сызықтарды көрсетудің ықшамды және тиімді құралы болып табылады. Ол кіретін мәліметтердің санын қысқартып, сызықтардың шағын бұрмалануларын түзетуге мүмкіндік береді. Сызықтардың оңтайлы көрінісі келесі қасиеттерден тұруы қажет. Біріншіден, ол ақпаратты жақсы сақтауы тиіс, яғни, форманың барлық маңызды ерекшеліктері жойылмауы қажет. Екіншіден, ол жадтың артық мөлшерін алмауы тиіс. Үшіншіден, көрініс параллель алмастыру, бұру, масштабтау және т.б. түрлендірулер мен жергілікті көмескіліктерге сезімтал болмауы қажет. Полигоналды аппроксимацияның көптеген әдістері бар болғанымен, олардың арасындағы екі ең әйгілі әдістері: - соңғы нүктелерден итерациялық аппроксимация. Әдіс келесі негізгі кезеңдерден тұрады; - соңғы нүктелер түзумен біріктіріледі және түзуден ең алыс қашықтықта жатқан нүктеге дейінгі ара қашықтық есептеледі; - егер қашықтық белгіленген шектен артатын болса, онда сызық екіге бөлінеді және ең ұзақ нүктеге қатысты соңғы нүктелерден екі түзулер жүргізіліп, тағы да қашықтықтары өлшенеді; - барлық қашықтықтар белгіленген шектен кем болғанға дейін осылай жалғаса береді; 32 - бір бастапқы нүктеден аппроксимация. Алгоритм бір бастапқы нүктеден жұмыс істеп бастайды, одан бастап жақын жердегі нүктелерге дейін түзуді жүргізеді және қашықтықтарды өлшейді. Егер қашықтық белгіленген шектен кем болса, онда бұл нүкте жаңа бастапқы нүкте ретінде таңдап алынады. Реті одан жоғарырақ функцияларға негізделген аппроксимация әдістері әдетте нақтырақ нәтижені алуға көмектеседі. Бірақ олар полигоналды аппроксимациямен салыстырғанда қиынырақ болып табылады [22]. 33 2 Суреттерді сүзгілеу алгоритмдерін жүзеге асыру 2.1 Суреттерді анықтау мәселесі Суретті анықтау мәселесін шешу кезінде туындайтын сұрақтар: - көру шегінің қабылдауы; - сегменттеу; - белгіленген объектілерді нормалау; - анықтау. Осыған байланысты келесі негізгі қағидалар қолданылады: - бүтіндік қағидасы – анықталатын объект өзара кеңістіктік қатынастармен байланысқан құрылымдық бөлшектерден тұратын бір бүтін ретінде қарастырылады; - екі бағыттылық қағидасы – модельді құру суреттен модельге және модельден суретке қарай орындалады; - болжау қағидасы. Суреттің мазмұны туралы гипотезаны құрастыруға негізделеді; - мақсатқа бағытталу қағидасы суретті сегменттеу мен оның бөліктерін бірігіп түсіндіруден тұрады; - түсіну әрекетінсіз ешнәрсені орындамау (көру шегінің қабылдауы); - күрделі орта моделін максимал қолдану қағидасы, осыған дейін алдын ала белгілі, априорлық параметрлерді пайдалану. Суретті түсіндіру сатысының нақты шекаралары жоқ және ол сегменттеу процесіне ішінара енеді және анықтау сатысында түпкілікті аяқталады. Әрине, бұл жерде келесі сұрақ туындайды: суретті алып, оны қандай да белгілері бойынша эталонмен біртіндеп салыстыруға болмайды ма? Бірақ бұл кезде бірқатар қиындықтар мен мәселелер туындайды: - фон. Көбінесе суреттер күрделі динамикалық фонда орналасады; - бағытталуы. Эталонның суреті мен кіретін суреттер көру шегіндегі орналасуымен айырмашылық жасайды; - бөгеуілдер. Кіретін суреттерде кездейсоқ және жергілікті бөгеуілдер болғандықтан, эталонмен сәйкеспейді; - жарық. Жарықтың өзгерістері себебін кіретін және эталондық суреттердің арасында айырмашылықтар болады; - түрлендірулер. Эталондар мен суреттердің арасында күрделі геометриялық түрлендірулер сияқты айырмашылықтар болуы мүмкін. Жалпы мәселені және сондай-ақ оның жеке кезеңдеріндегі мәселелерді шешу үшін сегменттеу, нормалау мен анықтаудың әр түрлі әдістері қолданылады. Көрсетілген сызбада өңдеудің негізгі әрекеттері мен әдістері белгіленген – датчиктер арқылы көру шегінің қабылдайтын бастапқы кезеңінен бастап соңғы анықтау кезеңіне дейінгі сатылар. Көрсетілген сызбаны қысқаша талдап өтейік. 34 Алдын ала өңдеу. Алдын ала өңдеу әрекеті көпшілік жағдайларда датчиктен ақпаратты алған бастапқы сатыларда қолданылады және орташалау операциялары мен гистограммаларды тегістеу, аппараттық дискреттеу мен кванттаудың нәтижесінде туындайтын түрлі бөгеуілдерді жою үшін алуан түрлі сүзгілерді қолдану, сондай-ақ сыртқы көмескіліктерді жою сияқты әрекеттерді орындайды. Сегментация. Сегментация деп суретте біртекті облыстарды іздеу процесі аталады. Көбінесе біртекті түстерді немесе текстураларды анықтауға негізделген әдістер пайдаланылады, бірақ кез келген тапсырма үшін бұл кезеңнің нақты алгоритмі болмайды. Көру шегінің жеке облыстарының жарығында тұрақты айырмашылықтар болған кезде шектік әдістер қолданылады. Мысалы: шектік үлестіру әдісімен сегменттеу үшін жартылай тондық суреттен бинарлы суретті алу қажет. Ол үшін қайсібір шектік мән орнатылады. Кванттеуден кейін суреттің функциясы суреттегі жарық деңгейі шектік мәннен жоғары 1 және шектік мәннен аз 0 элементтерді көрсетеді. Жеке сегменттердің арасында тұрақты байланыс болған жағдайда облыстарды арттыру әдістерін қолдану тиімді. Бұл қағидаға сәйкес жарық деңгейі бірдей немесе ұқсас көршілес элементтермен топтастыруды орындайды, содан соң оларды біртекті облыстарға біріктіреді. Солардың бір түрі центроидтық байланыстыруда оператордың көмегімен немесе автоматты түрде старттық нүктелерді таңдайды. Жергілікті минимумдарды іздеп, содан соң байланыс бойынша оның жанындағы облыстарды топтастыруға негізделген суайырық әдісі тиімді болып табылады [23]. Егер шекаралар жеткілікті анық және тұрақты болса, шекараларды белгілеу әдісін қолданған дұрыс. Контурлық сызықтарды белгілеу көбінесе техникалық көру жүйелерінде қолданылады және жарықтың өзгерістерін есептеп, оны содан соң шектік мәнмен салыстыруды орындайды. Осы аталған әдістер біртекті жарықтар критерийі бойынша сегменттерді бөлу үшін арналады. Барлық аталған қағидалардың есептеу шығындары көп емес, олардың әрқайсысы үшін эвристиканы қолдану себебінен шынайы жағдайларда нүктелерді белгілеудің көптігі тән. Суреттердің біртектілік, кедір-бұдырлық, жиілілік сияқты қасиеттерін сипаттау мен сегменттеу үшін текстуралық әдістер қолданылады, олар шартты түрде екі категорияларға бөлінеді – статистикалық және құрылымдық. Бастапқы суреттерден құрылатын сәйкестіктер матрицасын қолдану, содан соң статистикалық сәттер мен энтропияларды есептеу – статистикалық әдістің негізі. Құрылымдық тәсіл кезінде көптеген көпбұрыштар құрылады және ортақ ұқсастықтарына қатысты зерттеу жүргізіледі. Ортақ қасиеттері бар көпбұрыштар облыстарға біріктіріледі. Суретті анықтаудың негізгі әрекеттерінің реттілігі мен оларда қолданылатын әдістер көрсетілген (Сурет 9). 35 Сурет 9 Суреттерді анықтаудың негізгі әрекеттері мен әдістері. Анықтау. Суретті өңдеудің ең соңғы сатысы анықтау туралы айтайық. Бұл кезең үшін кіретін мәліметтер болып көмескілікті азайту мен сегменттеу процесінен өткен сурет жатады. Бұл суреттер эталондық суреттерден геометриялық және жарықтық бұрмалануларымен, сонымен бірге көмескіліктерінің сақталуымен айырмашылық жасайды. Анықтау мәселесін шешу үшін негізінен төрт тәсілдер қолданылады: Корреляциялық. Эталондармен ұқсастық критерийі бойынша шешімдерді қабылдауға негізделген тәсіл. Көбінесе навигация жүйелерінде, барлау, өнеркәсіптік роботтау жүйелерінде суретті табу мен анықтау үшін қолданылады. Есептеу шығындары жағынан қарайтын болсақ, ең қиын тәсілге жатады. Кіретін көру шегін сканерлеу арқылы толықтай белгіленген эталонда көп қадамдық корреляцияны орындайды, Басқаша айтсақ, барлық кіретін сигналдарды қарап, оларды эталонмен салыстыруды орындайды. Белгілік. Бұндай әдістер белгілер кеңістігіне өтуді білдіреді, сәйкесінше, олардың есептеу қуаттары да азырақ болады. Қойылған тапсырмаға байланысты эталон мен кіретін суреттен алынған белгілердің корреляциялық өңдеуі орындалады. Бұл кезде анықтау мәселесін шешу үшін түрлі өлшеу құрылғыларынан алынған, өлшемдері әр түрлі белгілерді (метрикалық, статистикалық, логикалық, текстуралық және т.б. белгілерді) біріктіру мен кешеңді өңдеу қажеттілігі туындайды. Корреляциялық-белгілік тәсіл келесі жолмен алынған белгілерді статистикалық әдістермен өңдеуді білдіреді. Бастапқыда эталондық суреттің түрлі фрагменттері үшін жеке корреляциялар әдісі қолданылады, содан соң сигналдық кеңістікте алынған корреляциялық коэффициенттер белгілер ретінде қарастырылады. Белгілік әдістердегі негізгі қиындыққа белгілерді таңдау жатады. Бұл жерде келесі ережелер де бар: - бір класс суреттерінің белгілерінде шағын айырмашылықтар ғана болуы мүмкін (көмескіліктер, бөгеулердің әсерінен); - түрлі кластарға жататын суреттердің белгілері үлкен айырмашылықтарды жасайды; - белгілердің жиынтығы аз болуы қажет (өңдеудің беріктігі, күрделігі, жылдамдығы олардың санына байланысты болады). Синтаксистік әдіс құрылымдық-грамматикалық белгілерді алуға негізделеді. Онда суретте туынды емес элементтер, белгілер анықталады. Эталон мен кіретін сурет үшін бірдей осы элементтерді біріктіру ережелері енгізіледі. Осы жолмен алынған грамматиканы талдау шешімдерді қабылдауды орындайды. 36 Анықтауда қолданылатын тәсілдердің әрқайсысының да өз артықшылықтары бар. Одан бөлек, әрбір тәсілді қолдану кезінде кіретін және эталондық суреттердің айымашылықтарының сипатына, есептеу көлемдеріне қойылатын талаптарға, көру шегіндегі бөгеуілдердің жағдайына, шешімдерді қабылдау жылдамдығына байланысты нақты салада қолданылатын нақты алгоритмдерден тұрады. Нормалау. Суретті нормалаудың міндеті – бұл суретте қолданылған геометриялық түрлендірудің параметрлерін анықтау мен оларды компенсациялау. Компенсациялау суретті енгізу жүйесінің кеңістіктік жағдайын өзгерту арқылы немесе кіретін суретке қатысты кері түрлендіруді орындайтын алгоритмдік жол арқылы жүзеге асырыла алады. Түрлендіру процедурасы нормалау операторлары, нормализаторлардың көмегімен орындалады, ал параметрлерді есептеу суреттердің көптігінде әрекет етеін функционалдармен орындалады. Анықтау кезіндегі нормалау әдістері корреляциялық және белгілік алгоритмдердің арасындағы аралық орынды иеленеді. Белгілік алгоритммен салыстырғанда, нормалау кезінде сурет қарастырудан шектетілмейді, тек бірдей класқа жататын суретпен орны алмастырылады. Сонымен қатар корреляциялық әдістермен салыстырғанда, кіретін суреттердің көптігі нормаланған суреттердің көптігімен алмастырылады. Жалпы, әрбір нормаланған сурет өзінің эталонына әлдеқайда жақынырақ болады (топтық түрлендірулер позициясынан қарасақ), бұл анықтаудың соңғы сатысында корреляцияның санын барынша қысқартады [24]. Қазіргі кезде нормалау теориясында күрделі түрлендіру параметрлерінің сатылы есептеуге және әрбір сатыда ішінара нормализаторларды қолдануға негізделген кезектес әдістер ең үлкен қызығушылықты тудырады. Суреттерді анықтау процедурасының жалпы сызбасы көрсетілген (Сурет 10). Сурет 10 Суреттерді анықтау процедурасының жалпы сызбасы. Суреттерді өңдеу мен анықтаудың дәстүрлі әдістерімен салыстырғанда роботталған жүйелердің көздік қабылдау мәселелерін шешу кезіндегі қосымша қиындықтар: - жұмыс істеу ортасын сипаттау. Нақты белгілерді анықтау немесе жеке сипаттамаларды анықтау мәселелерімен салыстырғанда, априорлық ақпараттың үлкен көлемін есептеу, күрделі ортаның моделін құрастыру негізінде кешенді сипаттау қажет. 3D-объектілерді талдау мен болжам заңдарын есептеу қажет. Шынайы объектілердің проекцияларын есептеуден бөлек, көлемді кеңістіктік қатынастарды анықтау жағынан да талдауды жүргізу қажет; 37 - кейбір белгілерді анықтау мүмкін емес болған кезде көптеген әр түрлі орналасқан объектілерді талдау, нақты мәндерді бөлу (мысалы, жазық параллельді проекцияда қажетті объектінің контурының бір бөлігі ғана көрінгенімен, бұл бөлігі сәйкестендіру үшін өте маңызды және жеткілікті болған кезде); - шынайы динамикалық ортада жұмыс істеу қажеттілігі. Жалпы жағдайда, туындайтын мәселелерге шұғыл назар аудару қажеттілігі мен тұрақты міндеттің болмауы; - щынайы уақытта роботтың бірнеше жүйешіктерінің өзара әрекеттесуі кезінде келістіру қажеттілігі. Суреттерді өңделмеген мәліметтер түрінде көрсету. Суреттерді анықтау тапсырмаларында соңғы көріністі орындауға негіз болатын бастапқы көрініс ретінде, әдетте, суретті «шикі» мәліметтер ретінде қарастыру ұсынылады – кейбір сахна үшін орындалған физикалық өлшемдердің нәтижелерінің жиыны. Сахна деп әдетте физикалық объектілердің жиынтығы немесе шынайы әлемнің кейбір фрагменті түсіндіріледі. Көбінесе тіркелетін физикалық өлшем кейбір спектрлік диапазондағы электромагниттік сәулеленудің қарқындылығымен көрінеді, мысалы, көрінетін, инфрақызыл, рентгендік немесе радиодиапазон. Бірақ сурет мүлдем басқа ақпараттан тұра алады, мысалы, биіктіктердің цифрлік картасы, гидроакустикалық мәліметтер немесе бағытына байланысты кейбір элементралық бөлшектердің тығыздығын үйлестіру болып табылуы мүмкін. Бастапқы көрініс беру кезінде суреттің элементі болып пиксель (pixel: picture element) есептеледі, сондықтан осы сияқты көріністер әдетте пиксельдер деңгейіндегі көріністер деп аталады. Суретті құрайтын пиксельдер өздеріне тән қарқындылық мәндерімен массивке ұйымдасады, мұндағы массивтің өлшемі мәліметтердің бастапқы табиғатына байланысты болады. Массивте пиксельдерді реттеу сахнаның кеңістіктік ұйымдасуына сәйкес келеді. Көптеген мәселелер үшін пиксельдердің массиві екі өлшемді болып табылады, бірақ массивтің өлшемі екіден көп бола алатын бағдарламалар кең таралған, мысалы, медициналық бағдарламалар. Көлемді суреттердің жағдайында олардың элементтері воксельдер (voxel: volume pixel) деп аталады. Суреттердің реттілігі үлкен өлшемдегі сурет ретінде түсіндіріле алады (пиксельдік көріністердің деңгейінде уақыттың қосымша кеңістіктік коррдинаттан ешбір айырмашылығы жоқ). Пиксельдік деңгейдегі көріністермен байланысқан негізгі мәселеге осы көріністердің ақпаратты сақтау мен тасымалдау мәселелеріндегі тиімділігі жатады, бұл көлемді суреттер үшін, әсіресе, өте өзекті болып табылады. Көлемді суреттерді көрсетудің бірнеше балама әдістері бар, мысалы, воксельдердің үш өлшемді массиві, стереожұп, Гаусс сферасына проекция және т.б. Бірақ осындай көріністерді құрастыру суретті анықтау мәселелеріне қатысы жоқ, тек қана техникалық мәселелерді шешу үшін қажетті болып саналады, сондықтан біз оларға тоқталып кетпейміз. 38 Пиксельдік деңгейдегі көріністер ақпараттық-телекоммуникациялық жүйелерде суреттерді түсіндіретін кез келген бағдарламалар үшін бастапқы көрініс болып табылады. Бұл көріністер суреттерді компьютерлік өңдеудің түрлі мәселелері үшін ортақ болғаны үшін әдетте «сурет – бұл пиксельдердің массивтері» деген сөз айтылады. Бірақ суретті (мазмұнды) оның нақты көрінісінен (формасынан) ажыратқан жөн. Пиксельдік деңгейдегі көріністерде бақыланатын сахна туралы барлық ақпараттар бар болғанымен, олар автоматтық талдау үшін ыңғайсыз формада болады. Соның ішінде, бұндай көріністер анықтау үшін немесе суреттерді салыстыру үшін сирек қолданылады. Дәл осы жағдай суреттердегі орынды ақпараттарды алу мақсатында өзге көріністерді қолдану қажеттілігін тудырады [25]. 2.2 Суреттерді сүзгілеуге арналған бағдарламаның жобалануы Бүгінгі күні компьютерлік математика өте әйгілі болуымен қатар, математика мен информатиканы қоса алып, белсенді түрде дамып келеді. Оған қатысты 80 жж. басынан бастап көптеген авторлар бұл саланы зерттей бастап, бірқатар монографиялар мен кітаптарды, шолулар мен еңбектерді жазып шықты. Бағдарламалайтын микрокалькуляторлар мен дербес компьютерлердің математикалық есептер үшін қолданылып жатқанына көп болды. Бағдарламаларды әзірлеу үшін бағдарламалаудың түрлі әмбебап тілдері қолданылды. 90-жж. басында оларды компьютерлік математика жүйелері (КМЖ) алмастырды. Олардың ішінде Eureka, Mercury, Mathcad, Derive, Mathematica 2/3/4, Maple V R3/R4/R5 и Maple 6 және т.б. ең көп қолданысқа ие болды. Олардың әрқайсының да өз кемшіліктері мен өз артықшылықтары бар. Соңғы кездері осы аталған тақырыпқа қатысты бірқатар кітаптардың басылып шығуы қолданушылардың бұл жүйелерге жоғары қызығушылық танытатынын білдіреді. Әдебиеттердің тізімінде ол кітаптардың кейбіреулері ғана аталған. Шетелде әрбір маңызды КМЖ туралы құрастырушылардың web-сайттарында жүздеген кітаптардың атауларын көруге болады. Бұл кітапта MatLab® жүйесі қарастырылатын болады, ол тек үлкен ЭЕМде пайдаланылатын тар маманданған матрицалық бағдарламалық модульден басталып, IBM PC және Macintosh санатындағы бұқаралық дербес компьютерлер мен UNIX жұмыс станцияларына негізделген әмбебап интегралды КМЖ-ге дейін дамып, диалог, графика мен кешенді визуалдаудың мықты құралдарынан құралады. MatLab жақсы мақұлданған және сенімді КМЖ болып табылады және Math Works, Inc фирмасы ұсынған әмбебап матрицалық формада ең кең ауқымдағы математикалық есептерді шешу үшін пайдаланылады [26]. 39 MatLab жүйесін құрастырушылары (Math Works, Inc. фирмасы) оны, ең алдымен, әскери-өнеркәсіптік кешен жүйесіндегі, аэроғарыштық сала мен автокөліктерді құрастыру саласындағы үздік жүйе деп және стандартты пакеттері мен қолданбалы бағдарламалары көп техникалық есептеулерге арналған жоғары деңгейдегі бағдарламалау тілі деп айтады. MatLab жүйесі соңғы отыз жылдардағы жиналған сандық әдістерді компьютерлік жүзеге асыру мен дамудың алдыңғы сатысын иемденіп қана қоймай, адамзаттың даму тарихындағы математиканың қалыптасуының барлық тарихын да өзіне қоса алды. Миллиондаған заңды тіркелген адамдар бұл жүйені әлдеқашан қолданып келеді. Әлемнің алдыңғы қатарлы университеттері мен ғылыми орталықтары оны өздерінің ғылыми жобаларында қуана пайдаланады. Оның Simulink атты өте қуатты кеңейтуі сызықтық және сызықтық емес динамикалық модельдерді жүйелеу үшін объектіге-бағытталған визуалдық бағдарламалаудан және жүйені кеңейтудің өзге де көптеген пакеттерінен тұрады, сонымен бірге ыңғайлы және қарапайым құралдарды ұсына отырып, бұл жүйенің әйгілі болуына өз септігін тигізеді. Заманауи компьютерлік математикада математикалық есептерді автоматтандыруға арналған интегралданған бағдарламалы жүйелер мен бағдарламалар пакеттерінің бүтіндей жинақтары бар: Eureka, Gauss, TK Solver!, Derive, Mathcad, Mathematica, Maple V және т.б. Бұдан келесі сұрақ туындайды: «Олардың арасында MatLab жүйесі қандай орынды алады?» MatLab — бұл матрицалық операцияларды кеңейтіп көрсету мен қолдану арқылы құрастырылған, математикалық есептеулерді автоматтандырудың мұқият жасалып, уақытпен тексерілген ең бұрынғы жүйелерінің бірі. Жүйенің атауы да соған негізделеді: MATrix LABoratory — матрицалық зертхана. Алайда жүйенің бағдарламалау тілінің синтаксисі мұқият құрастырылғаны соншалық – тікелей матрицалық есептеулерге қызықпайтын пайдаланушыларға нақты бұл бағыты сезілмейді де. Матрицалар күрделі математикалық есептеулерде пайдаланылады, мысалы, сызықтық алгебраның есептерін шешу кезінде және статистикалық және динамикалық жүйелер мен объектілерді математикалық модельдеу үшін пайдаланылады. Олар динамикалық объектілер мен жүйелердің күйлеріне қатысты теңдеулерді автоматты түрде құрастыру мен шешудің негізі болып табылады. Мысал ретінде MatLab – Simulink кеңейтуін келтіруге болады. Бұл матрицалық есептерді жылдам шешу саласындағы ең жақсы жетістіктерді өз бойына жинаған MatLab жүйесіне деген қызығушылықты айтарлықтай арттырады. Дегенмен қазіргі кезде MatLab арнайы маманданған матрицалық жүйенің шегінен шығып, ең мықты әмбебап интегралданған КМЖ-нің біріне айналды. «Интегралданған» деген сөз бұл жүйеде ыңғайлы көрініс, сөздер мен мәтіндік түсіндірмелердің редакторы, есептеуіш пен графикалық бағдарламалық процессор біріккенін білдіреді. Жаңа нұсқасында көп өлшемді массивтер, ұяшықтардың массивтері, құрылымдардың массивтері, Java массивтері мен сиретілген матрицалар сияқты мәліметтердің қуатты типтері пайдаланылады, 40 бұл жаңа матрицалық алгоритмдерді және осы алгоритмдерге негізделген параллель есептеулер мен ірі мәліметтердің базасын құрастыру барысында осы жүйені пайдалануға мүмкіндіктерін береді [27]. Жалпы MatLab — бұл соңғы отыз жылдың ішінде жасалған компьютерлік математиканың заманауи сандық әдістерін жүзеге асырудың айрықша жиынтығы. Ол математиканың мыңжылдық даму тарихынан бері жиналған математикалық есептеулердің тәжірибесін, ережелері мен әдістерін өзіне біріктірді. Бұл графикалық визуалдау мен тіпті анимациялық графиканың да қуатты құралдарымен үйлеседі. Кіріктірілген ауқымды құжаттамасы бар жүйені ЭЕМ математикалық қамсыздандыру бойынша көп томды электрондық іргелі анықтама ретінде де қарастыруға әбден болады, ол бұқаралық ЭЕМ-нен бастап супер-ЭЕМ-ге дейінгі бәрін қамтиды. Өкінішке орай, қазірше ол тек ағылшын тілінде және кейде жапон тілінде ғана берілген! MatLab жүйесін Молер (С. В. Moler) құрастырды және бұл жүйе 70-жж. соңынан бастап ірі ЭЕМ-де пайдаланылды. 80-жж. басында MathWorks, Inc. фирмасындағы Джон Литл (John Little) компьютерлердің IBM PC, VAX және Macintosh санаттары үшін жүйенің PC MatLab нұсқасын құрастырды. Одан кейін Sun жұмыс станциялары үшін, UNIX операциялық жүйелі компьютерлері үшін және ЭЕМ-нің көптеген үлкен және кіші типтері үшін нұсқалар құрастырылған. Қазіргі таңда оннан астам әйгілі компьютерлік платформалар MatLab жүйесімен жұмыс істейді. Әлем бойынша математика, бағдарламалау мен жаратылыстанудың ірі ғылыми мектептері жүйенің кеңейтуіне жұмылдырылды. Жүйенің негізгі міндеттерінің біріне пайдаланушыларға математикалық есептеулерге бейімделген қуатты тілді ұсыну мен сандық әдістемелерді жүзеге асыру үшін ұзақ жылдар бойы пайдаланылған дәстүрлі бағдарламалау тілдерінің мүмкіндіктерінен асып түсу болып табылатын. Бұл кезде әрі есептеулердің жылдамдықтарын арттыру, әрі жүйені пайдаланушылардың әр түрлі есептерін шешуге бейімдетуге аса көңіл бөлінді. MatLab-тың мүмкіндіктері өте кең, ал есептерді орындау жылдамдығы бойынша бұл жүйе әдетте өз бәсекелестіктерінен алда болады. Оны ғылым мен техниканың кез келген саласында есептеулерді жүргізу үшін пайдалануға болады. Мысалы, ол механикалық құрылғылар мен жүйелерді математикалық модельдеуде, соның ішінде, динамикада, гидродинамикада, аэродинамикада, акустикада, энергетика мен т.б. салаларда өте кең қолданылады. Себебі оның матрицалық және өзге операциялар мен функциялардың кеңейтілген жиынтығы бар, онымен қоса оның динамикалық жүйелер мен құрылғыларды блоктың модельдеу есептерін шешуге арналған арнайы Simulink кеңейтулер пакеті (toolbox) мен ондаған өзге кеңейтулердің пакеттері бар. Командалар, функциялар мен қолданбалы бағдарламалардың кеңейтілген және үздіксіз толықтырылатын кешенінде (кеңейту пакеттерінде, аспаптар пакетінде, (toolbox)) MatLab жүйесінде электротехникалық және радиотехникалық есептеулердің (кешенді сандары, матрицалары, векторлары мен көпмүшелері, мәлімттерді өңдеу, сигналдарды талдау мен сандық 41 сүзгілеуге қатысты операциялар), суреттерді өңдеудің, нейрондық желілерді жүзеге асырудың арнайы құралдары, сондай-ақ ғылым мен техниканың өзге жаңа бағыттарына қатысты құралдары бар. Олардың көптеген практикалық пайдалы мысалдарын келтіруге болады. MatLab жүйесі үшін кеңейтулерді құрастыру ісіне әлемнің бірқатар ғылыми мектептері мен оларды басқаратын ірі ғалымдар және университеттердің оқытушылары жұмылдырылды [28]. Жүйенің маңызды ерекшеліктеріне оның ашықтығы және кеңейтулері жатады. Жүйе командалары мен функцияларының басым бөлігі мәтіндік mфайлдар түрінде (.m кеңейтуімен) және Си тіліндегі файлдар түрінде жүзеге асырылған, барлық файлдарды түрлендіруге болады. Пайдаланушы жеке файлдарды жасап қана қоймайды, ол арнайы міндеттерді орындау үшін файлдардың кітапханасын да түзе алады. Жүйені түрлендірудің таңқаларлық оңайлығы мен оны ғылым мен техниканың арнайы тапсырмаларын шешуге бейімделуінің арқасында жүйенің қолданыс саласын әлдеқайда кеңейткен ондаған қолданбалы бағдарламалардың пакеттері (toolbox) жасалды. Олардың кейбіреулерінің, мысалы, Notebook (Word мәтіндік процессорымен интеграция және «тірі» электрондық кітаптарды әзірлеу), Symbolic Math және Extended Symbolic Math (Maple V R5 жүйе ядросын пайдалану арқылы символдық есептеулер) және Simulink (блоктардың жүйесі ретінде берілген динамикалық жүйелер мен құрылғыларды модельдеу) пакеттерінің MatLab жүйесімен үйлесімді болғаны сонша – бұл пакеттер оның құрамдас бөлшектеріне айналды. MatLab-тың мүмкіндіктері: Жүйенің Microsoft Windows үшін арналған нұсқаларының өзінде қуатты құралдары болды. Маематикалық есептеулер саласында: - матрицалық, векторлық, логикалық операторлар; - қарапайым және арнайы функциялар; - көпмүшелік арифметика; - көп өлшемді массивтер; - жазбалардың массивтері; - ұяшықтардың массивтері. Сандық әдістерді жүзеге асыру саласында: - дифференциалдық теңдеулер; - бір өлшемді және екі өлшемді квадрастурасын есептеу; - сызықтық емес алгебралық теңдеулердің түбірлерін іздеу; - бірнеше айнымалылардың функцияларын оңтайландыру; - бір өлшемді және екі өлшемді интерполяция. Бағдарламалау саласында: - 500-ден астам кіріктірілген математикалық функциялар; - екілік және мәтіндік файлдарды енгізу/шығару; - Си және ФОРТРАН арқылы жазылған бағдарламаларды қолдану; - MatLab процедураларын автоматты түрде Си және C++ тілдеріндегі бағдарламалық мәтіндерге қайта кодтау; - типтік басқарушы құрылымдар. 42 Визуалдау мен графика саласында: - екі өлшемді және үш өлшемді графикаларды құрастыру мүмкіндігі; - деректерді визуалдық талдауды орындау. Бұл құралдар бұрынғы функцияларды өзгертуге және өзінің жеке функцияларыңды қосуға мүмкіндік беретін жүйенің ашық архитектурасымен жақсы үйлеседі. MATLAB-тың құрамына кіретін Simulink бағдарламасы шынайы жүйелер мен құрылғыларға еліктете алады, ол үшін оларды функционалды блоктардан құрылған модельдермен жасайды. Simulink ауқымды және пайдаланушы кеңейте алатын блоктардың кітапханасынан және олардың параметрлерін енгізу мен өзгертудің қарапайым құралдарынан тұрады [29]. Simulink-те жұмыстың басы. Simulink-ті қосу үшін алдымен MatLab-ты қосып, одан әрі келесі әрекеттерді орындау қажет: 1. Simulink блоктар кітапханасын ашу үшін MatLab басты терезесінің командалық жолында Simulink командасын таңдау керек (Сурет 11) немесе MatLab командалық терезесінің аспаптар панелінде (Simulink) батырмасын басу керек. Сурет 11 MatLab негізгі терезесі 2. Бұрыннан бар Simulink-модельді ашу үшін File мәзірінде Open… командасын орындап, модельдің файлын (mdl-файлды) ашуға болады немесе тышқанның көмегімен қажетті файлды өткізгіштің терезесінен MatLab терезесіне тасымалдауға болады. 1-тармақта аталған әдістердің бірін қолдану арқылы Simulink кітапханасы бөлімдерінде шолушының терезесі ашылады (сурет 12). Блоктар кітапханасының шолушы терезесі келесі элементтерден тұрады: - терезенің аты жазылған басы – Simulink Library Browser; - File, Edit, View, Help командалары бар мәзір; - ең жиі қоллданылатын командалары бар ұяшықтармен және аты арқылы блоктарды жылдам іздеуге арналған жолы бар аспаптардың панелі; - таңдалған блок туралы хабарламаны түсіндіретін түсіндірме терезесі; - ағаш түрінде жүзеге асырылған кітапхана бөлімдерінің тізімі; - кітапхана бөлімінің мазмұны туралы терезе (кітапхананың немесе блоктардың кіріктірілген бөлімдерінің тізімі); - орындалып жатқан әрекет бойынша көмектен тұратын күй жолы. 43 Сурет 12 Simulink кітапханасы бөлімдерінің шолу терезесі Аспаптар панеліндегі батырмалар келесі әрекеттерді орындайды (сурет 13): - жаңа Simulink-модельді жасау (модельдің жаңа терезесін ашу); - бұрыннан бар Simulink-модельдердің біреуін ашу; - шолу терезесі үшін «барлық терезелердің үстінен» көрсету режимін таңдау. Тағы бір рет басу арқылы бұл режимді болдырмауға болады; - блокты аты бойынша (атының алғашқы символдары бойынша) іздеу. Блок табылғаннан кейін, шолушының терезесінде кітапхананың сәйкес бөлімі ашылады, ал блок белгіленіп көрінеді. Егер осындай атты блок болмаса, онда түсіндірменің тересінде Not found <блоктың аты> хабарламасы шығады (Блок табылған жоқ). Сурет 13 Simulink аспаптарының панелі Жұмысты бастау үшін Simulink жұмыс терезесін ашу қажет, онда бұдан кейін жүйенің құрылымдық сызба түріндегі моделі жасалатын болады. Оны тышқанның сол батырмасымен аспаптар панеліндегі пиктограммасын басу арқылы (Create a new model) немесе File/New/Model мәзірінің көмегімен (Сурет 14) орындауға болады. Сонымен қатар Ctrl+N «ыстық батырмаларын» да қолдануға болады. Сурет 14 Жаңа Simulink-модельді құрастыру 44 Модельдің туындаған терезесінің (және Simulink-модельдің де) атауы әдеткі қалып бойынша «untitled» деп аталады. (Сурет 15) модельдің жұмыс терезесі кескінделген. Сурет 15 Simulink-модельдің жұмыс терезесі Модельдің құрылымдық сызбасын жасау үшін блоктардың кітапханасынан блокты таңдау қажет және тышқанның сол жақтағы батырмасын жіберместен, оны модельдің жұмыс терезесіне тасымалдау қажет. Содан соң байланыс сызықтарын жүргізу, модельдеу параметрлерін таңдау, модельдеуді орындап, нәтижелерге талдау жасау қажет. Біз бұдан әрі бұл әрекеттерді мысалмен нақтырақ түсіндіретін боламыз. Модельдің терезесі келесі элементтерден тұрады: - терезенің атауы бар бас тақырыбы. Жаңадан құрылған терезеге сәйкес нөмірімен бірге Untitled атауы беріледі; - File, Edit, View және т.б. командалары бар мәзір; - аспаптардың панелі; - модельдің сызбасын жасауға арналған тезере; - модельдің ағымдағы жағдайы туралы ақпаратты беретін күй жолы. Терезенің мәзірі модельді түзетуге арналған командалардан, оны баптау мен есептеу процесін басқарудан. Файлдармен жұмыс істеуден және т.б. тұрады: - File (Файл) – Модельдердің файлдарымен жұмыс жасау; - Edit (Түзету) – Модельдерді өзгерту және блоктарды іздеу; - View (Көрініс) – Интерфейстің элементтерін көрсетуді басқару; - Simulation (Модельдеу) – Модельдеу үшін және есептеу процестерін басқару үшін бастауларды орнату; - Format (Форматтау) – Блоктардың және модельдердің жалпы сыртқы көріністерін өзгерту; - Tools (Аспаптық құралдар) – Модельмен жұмыс істеу үшін арнайы құралдарды пайдалану (ретке келтіргіш, сызықтық талдау және т.б.). - Help (Анықтама) – Анықтама жүйесінің терезелерін шығару. Бұл командаларлдың кейбіреулері белгілі, ал кейбіреулерін біз алда нақтырақ қарастыратын боламыз. 45 Модельмен жұмыс істеу үшін сонымен қатар аспаптар панеліндегі батырмаларды да пайдалануға болады (Сурет 16). Сурет 16 Модельдің жұмыс терезесіндегі аспаптар панелі. Аспаптар панелінің батырмалары келесі әрекеттерді орындайды: -New Model – Модельдің жаңа (бос) терезесін ашу; -Open Model – Бұрыннан бар mdl-файлды ашу; -Save Model – mdl-файлды сақтау; -Print Model – Модельдің блок-диаграммаларын басып шығару; -Cut – Модельдің белгіленген бөлігін аралық сақтау буферіне кесу; -Copy – модельдің белгіленген бөлігін аралық сақтау буферіне көшіру; -Paste – Модель терезесіне аралық сақтау буфердің ішіндегіні қою; -Navigate – Navigate back, Navigate forward терезелерінің арасындағы навигация батырмалары; -Go to parent system – Жүйешіктен иерархмияның жоғары деңгейіндегі жүйеге («ата-аналық жүйеге») өту. Жүйешік ашық кезде ғана команданы орындауға болады; -Undo – Түзетудің соңғы операциясын болдырмау; -Redo – Түзетудің бас тартылған операциясының нәтижесін қайта қалпына келтіру; -Start/Pause/Continue Simulation – модельді орындау үшін қосу (Start командасы); модель іске қосылғаннан кейін батырманың суретінде символы шығып, ол енді Pause командасы деп аталады (Модельдеуді тоқтату). Модельдеуді қайта жалғастыру үшін дәл сол батырманы тағы да басу қажет, себебі тоқтаған режимінде ол батырма Continue (Жалғастыру) деп аталады; - Stop – Модельдеуді аяқтау. Модельдеуді бастаған кезде, сондай-ақ Pause командасын орындағаннан кейін бұл батырманы басуға болады; Simulation stop time – Модельдеудің аяқталған уақыты; - Normal/Accelerator – Есептеудің қалыпты/жылдамдатылған режимі. Simulink Performance Tool бағдарламасы орнатылғанда ғана, аспап қолжетімді болып табылады; - Show when hovering – «Қатып қалғанда» көрсету; - Incremental build – Run-Time Work- Shop-ты қолдану арқылы модельді құрастырады; - Refresh model blocks – Интерфейстің өзгерістерін көрсету үшін сәйкес процестердің көмегімен модельдің блоктарын жаңартады; - Update diagram – Диаграмманы (модель сызбасының бейнесін) 46 жаңартады, бұл кезде барлық блоктар мен жүйешіктерге қайтадан жүктеледі; Build subsystem – Бөлінген жүйешікті орындалатын файл ретінде қайта құрастырады (*.exe). Құрастырылған бағдарлама жүйешікпен бірдей әрекеттерді орындағанымен, Simulink-тен тәуелсіз орындалады. Бағдарламаның орындалу нәтижесінде жүйешіктің шығу мәліметтері бар mat-файл жасалады; - Library Browser – Кітапханалардың шолу терезесін ашу; - Launch model exploer – Model Explorer утилитасын қосады, ол Simulinkмодельдің, жүйешіктер мен жеке блоктардың баптаулары, MatLab жұмыс облыстары, модельдер мен жүйешіктер біріктірілген ыңғайлы графикалық интерфейс болып табылады; - Toggle Model Browser – Модельдің шолу терезесін ашу; - Debug – Модельді ретке келтірушіні іске қосу. Модель терезесінің төменгі бөлігінде күй жолы орналасқан, онда аспаптар панеліндегі батырмаларға қысқаша түсіндірмелер жазылады, сонымен қатар тышқанның көрсеткіші интерфейстің бір элементінің үстінде тұрған кезде мәзірдің тармақтарына да түсіндірмелерді береді. Бұл мәтіндік өріс Simulink-тің күйін индикациялау үшін де пайдаланылады: Ready (Дайын) немесе Running (Орындалуда). Күй жолында тағы да көрінетіндер: - блок-диаграмманы көрсетудің масштабы (процентпен, ағымдағы мәні 100%-ға тең); - модельдеу сеансының аяқталу дәрежесінің индикаторы (модельді іске қосқаннан кейін пайда болады); - модельдік уақыттың ағымдағы мәні (ол да модельді іске қосқаннан кейін ғана шығады); - модельдің күйін есептеуге пайдаланылатын алгоритм (шешу әдісі). Құрылымдық сызбаларды құрастыру үшін пайдалануға болатын дайын блоктар Simulink кітапханасында орналасқан. Simulink кітапханасының бөлімдерінің тізімі ағаш түрінде берілген және онымен жұмыс істеудің ережелері келесі тізімдер үшін ортақ болып табылады: - ағаштың жабылған түйінінің пиктограммасы "+" символынан, ал ашылған пиктограмма "-" символынан тұрады. Ағаштың түйінін ашу немесе жабу үшін оның пиктограммасына тышқанның сол жақ батырмасын шерту қажет. Кітапхананың сәйкес бөлімін таңдаған кезде терезенің оң жақ бөлігінде оның мазмұны көрінеді. Simulink кітапханасы өте кең және ондағы модельдер құрылғылардың модельдері (блоктар) функционалдық денгейлері бойынша бөлімдерге топталады. Біз тек алда пайдаланатын бөлімдер мен блоктарды ғана қарастырамыз: - Continuous – сызықтық жүйелерді сипаттауға арналған блоктар (уақыт бойынша қадам автоматты анықталады); - Discrete – уақыт бойынша қадамдары белгіленген сызықтық жүйелерді сипаттау үшін; - Math Operations – математикалық операциялардың блоктары; - Nonlinear – сызықтық емес блоктар; 47 - Ports & Subsystems – порттар және жүйешіктер; - Signal Routing – сигналдарды бағдарлау; - Sinks – тіркейтін құрылғылар; - Sources – сигналдар мен әсерлердің көзі; - User-Defined Function – пайдаланушы орнатқан функциялар; Simulink-модельдердің көпшілігін келесі жалпы сызбамен көрсетуге болатыны көрсетілген (Сурет 17).\ Сурет 17 Simulink-модельдердің жалпы сызбасы. Дереккөзден шығатын сигнал құрылымдық сызба түрінде сипатталатын жүйеге әсер ететін айнымалы болып табылады. Дереккөздің түрленген сигналы құрылымдық сызбадан өткеннен кейін арнайы құрылғылардың көмегімен тіркеледі. Simulink – модельдерде дереккөздер мен тіркеушілердің бір немесе бірнеше блоктары болуы мүмкін. Бірақ жоғарыда келтірілген сызба әмбебап болып табылмайды, себебі модельдерде сызбада белгіленген топтардың блоктары болмауы мүмкін, мысалы, тек сигналдардың дереккөздері мен тіркеуші құрылғылардан ғана құралған қарапайым модельдер немесе автотербелмелі жүйелердің күрделірек модельдері [30]. 2.3 Суреттерді сүзгілеуге арналған қосымшаның өңделуі Бағдарламаның басты интерфейсі көрсетілген (Сурет 18). Сурет 18 Бағдарламаның басты интерфейсі. Бейнелерді импорттау көрсетілген (Сурет 19). 48 Сурет 19 Бейнелерді импорттау. Импортталған бейне көрсетілген (Сурет 20). Сурет 20 Импортталан бейне Соль және перец операциясының нәтижесі көрсетілген (Сурет 21). Сурет 21 Соль және перец операциясының нәтижесі. 49 Медиан фильтрация нәтижесі, маска 3x3 көрсетілген (Сурет 22). Сурет 22 Медиан фильтрация нәтижесі, маска 3x3. Медиан фильтрация нәтижесі, маска 5x5 көрсетілген (Сурет 23). Сурет 23 Медиан фильтрация нәтижесі, маска 5x5 Медиан фильтрация нәтижесі, маска 7x7 көрсетілген (Сурет 24). Сурет 24 Медиан фильтрация нәтижесі, маска 7x7. 50 Гауссиан фильтрация нәтижесі, сигма 0.5 көрсетілген (Сурет 25). Сурет 25 Гауссиан фильтрация нәтижесі, сигма 0.5. Гауссиан фильтрация нәтижесі, сигма 1 көрсетілген (Сурет 26). Сурет 26 Гауссиан фильтрация нәтижесі, сигма 1. Гауссиан фильтрация нәтижесі, сигма 2 көрсетілген (Сурет 27). Сурет27 Гауссиан фильтрация нәтижесі, сигма 2. 51 Собель операциясының нәтижесі көрсетілген (Сурет 28). Сурет 28 Собель операциясының нәтижесі. Приютт операциясының нәтижесі көрсетілген (Сурет 29). Сурет 29 Приютт операциясының нәтижесі. 52 Қорытынды Бұл жұмыстың барысында бүгінгі күнде ең кең тараған бағдарламаларға шолу жасалып, олардың негізінде ең оңтайлы шешім таңдалды. Белсенді жолақтық сүзгілерді құрудың теориялық базасы сипатталып, қажетті есептемелер орындалды. Дипломдық жұмысты жазудың барысында шуылдың үш негізгі түрлерін жоюға зерттеулер жүргізілді: Гаусс шуылы, импульстық шуыл, аралас шуыл. Оның негізінде MatLab ортасында жүзеге асырылған алгоритм құрылды. Одан бөлек, бұл жүйе әмбебап болып табылғандықтан, шуылға қарай өзі бейімделе алады. Стандартты жүйелер мен жаңа жүйенің жұмысына салыстырмалы талдау жасалды. Барлық жағынан да жаңа жүйенің стандартты жүйелерден тиімдірек жұмыс жасайтыны байқалды. Уақытқа баға беру үшін қажетті және есептеуді ұйымдастыру үшін жасалған өзге нұсқаларды орындау тиімділігі қасиеттеріне баға беру үшін қажетті суреттерді параллель өндеудің ақпараттық құрылымын кеңейту және жұмыстарында келтірілген. Әрбір процесс өңделетін деректердің өлшеміне қарай процестің уақытын анықтайтын функциямен салыстырылады. Функцияның түрін таңдау және мақсатты есептегіш жүйенің бағдарламалықаппараттық құралдарында процесстердің қызмет етуінің түрлі режимдеріндегі оның параметрлерін таңдау үшін өңдеудің зерттелетін операцияларын жүзеге асыратын бағдарламалық прототиптер пайдаланылады. Суретті үйлестірудің ұсынылған моделі жиілікті суреттердің дизъюнктивті бірігуі түрінде болып, белгіленген типті бастапқы суретке бөлшектеу нәтижесінде алынып, деректер бойынша бөлшектеуге негізделген суретті өңдеудің параллель алгоритмдерін сипаттайтын модельдердің алфавитін қарапайым етуге мүмкіндік береді. Суреттерді параллель өңдеу процестерінің формальды моделінің негізі ретінде CSP алгебрасын таңдау ақпараттық модельдің түрлі деңгейлерінде нақты сипаттамаларды жасауға және сәйкес шешім қадамдарын орындайтын операциялардың нақты ақпараттық құрылымын орнатуға мүмкіндік береді. CSP алгебрасының негізінде суреттерді параллель өңдеу процестерінің формальды моделі алгоритмнің ақпараттық құрылымына иерархиялық сипаттауды қалыптастырып, суреттерді өңдеу технологиясының үйлестіруші жүйелердің архитектурасында тиімді көрініс беру есептерін шешуде қажет болады. Бағдарламаның интерфейсі – қолданушыға өте жеңіл және қолжетімді болып келеді. Жүйе конфигурациялы болып келеді және әрі қарай дамыту жұмыстарын жүргізуге болады. Қосымша және оның компоненттері тестілеуден өткізіліп және оған талдау жасалынды. Жалпы қорытындылай келе, қосымшаны құрастыруда мақсатқа алынған талаптар орындалып, мәселелер өз шешімін тапты. 53 Пайдаланылған әдебиеттер тізімі 1 Базовые методы обработки изображений [Электронный ресурс] / режим доступа: http://mechanoid.kiev.ua/cv-base.html 2 Гонсалес Р., Вудс Р. Цифровая обработка изображений. – М.: Техносфера, 2005. – 205 б. 3 Гонсалес Р. Цифровая обработка изображений / Р. Гонсалес, Р. Вудс – М.: Техносфера, 2006. – 1072 б. 4 Кашкин, В. Б. Цифровая обработка аэрокосмических изображений : электрон. учеб. пособие / В. Б. Кашкин, А. И. Сухинин – Красноярск : ИПК СФУ, 2008 – 278 б. 5 Матричные фильтры обработки изображений [Электронный ресурс] / режим доступа: http://habrahabr.ru/post/142818/ 6 Обработка изображений – свертка [Электронный ресурс] / режим доступа: http://robocraft.ru/blog/computervision/427.html 7 Перфильев, Д. А. Анализ цифровых изображений: монография. – Germany : LAP Lambert Academic Publishing GmbH& Co., 2011. – 107 б. 8 Перфильев, Д. А. Описание структуры и алгоритм анализа микроструктурных металлографических изображений деформируемых алюминиевых сплавов : дис. на соискание уч. степ. канд. техн. наук : 05.13.17 / Перфильев Дмитрий Альбертович – Красноярск, 2007. – 124 б. 9 Программно-реализуемые алгоритмы нелинейной фильтрации цифровых изображений [Электронный ресурс] / режим доступа: http://www.swsys.ru/index.php?id=431&page=article 10 Сойфер, В. А. Методы компьютерной обработки изображений, – М.: Физматлит. 2003. – 783 б. 11 Сойфер, В. А. Методы компьютерной обработки изображений / изд. 2ое, испр. – М.: Физматлит, 2003. – 784 б. 12 Концепция распределенного хранения и параллельной обработки крупноформатных изображений // Компьютерная оптика. – 2007. – Т. 31, № 4. – 77-85 б. 13 Стругайло В. В. Обзор методов фильтрации и сегментации цифровых изображений / В. В. Стругайло // Наука и Образование – 2012. - №5. – 270-281б. 14 Франценюк И. В. Альбом микроструктур чугуна, стали, цветных металлов и их сплавов / И. В. Франценюк, Л. И. Франценюк – М.: ИКЦ «Академкнига», 2004. – 192 б. 15 А. А. Петровский, М. Парфенюк, А. Борович и др., Цифровые банки фильтров: анализ, синтез и применение в мультимедиа системах: Учеб. метод. пособие / Минск: БГУИР, 2006. – 82 б. 16 Сергиенко А. Б. Цифровая обработка сигналов / А. Б. Сергиенко. – СПб.: Питер. 2002. – 606 б. 17 Современные проблемы в области фильтрации цифровых изображений [Электронный ресурс] / режим доступа: http://www.slideshare.net/vladimirpavlov2/2011-9708052 54 18 Цибульский, Г. М. Мультиагентный подход к анализу изображений : монография / Новосибирск: Наука. 2005. – 188 б. 19 Цифровая обработка изображений [Электронный ресурс] / режим доступа: http://sibsauktf.ru/courses/fulleren/g3.htm 20 Грузман И.С, В.С. Киричук, В.П. Косых, Г.И. Перетягин, А.А.Спектор. Цифровая обработка изображений в информационных системах: Учебное пособие.– Новосибирск: Изд-во НГТУ, 2000. – 168 б. 21 Бухтояров С.С., Удаление шума из изображений нелинейными цифровыми фильтрамина основе ранговой статистики. – Москва, 2007. – 104 б. 22 Фисенко В.Т., Фисенко Т.Ю., Компьютерная обработка и распознавание изображений: учеб. пособие. – СПб: СПбГУ ИТМО, 2008. – 192 б. 23 Саймон Хайкин. Нейронные сети: полный курс, 2-е издание. – М.: Вильямс, 2008. – 1103 б. 24 Саймон Хайкин. Нейронные сети. Полный курс. – М.: Вильямс, 2005. – 1104 б. 25 Абламейко С. В., Лагуновский Д. М. Обработка изображений: технология, методы, применения. Учебное пособие. – Мн.: Амалфея, 2000. – 304 б. 26 Коткин Г.Л., Черкасский В.С. Компьютерное моделирование физических процессов с использованием MATLAB: Учеб. пособие / Новосиб. ун-т. Новосибирск, 2001. 173 б. 27 Яковлев В. MATLAB 6/6.5+Simulink 4/5 в математике и моделировании.-СПб.: Изд-во «Солон-Пресс», 2003.- 576 б 28 Мартынов Н.Н., Иванов А.П. MatLAB 5.x. Вычисления, визуализация, программирование.-М.: Изд-во «КУДИЦ-ОБРАЗ», 2000.-336 б. 29 Лазарев Ю.Ф. MatLAB 5.x. Издательская группа BHV. Серия «Библиотека студента».- СПб.,2000.-384 б 30 М.А. Павлейно, В.М. Ромаданов, Ю.Ф. Сафронова, А.А. Статуя. Моделирование работы электрических схем в Simulink. Применение операционных усилителей для фильтрации, усиления и генерации сигналов, Санкт-Петербург, 2007. – 7-13 б. 55 MATLAB бойынша есептеу Қосымша function varargout = example(varargin) % EXAMPLE MATLAB code for example.fig % EXAMPLE, by itself, creates a new EXAMPLE or raises the existing % singleton*. % % H = EXAMPLE returns the handle to a new EXAMPLE or the handle to % the existing singleton*. % % EXAMPLE('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in EXAMPLE.M with the given input arguments. % % EXAMPLE('Property','Value',...) creates a new EXAMPLE or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before example_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to example_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help example % Last Modified by GUIDE v2.5 22-Apr-2018 17:18:39 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @example_OpeningFcn, ... 'gui_OutputFcn', @example_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); 56 end % End initialization code - DO NOT EDIT % --- Executes just before example is made visible. function example_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to example (see VARARGIN) % Choose default command line output for example handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes example wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = example_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename pathname] = uigetfile('*.jpg; *.png; *bmp','Pick any file'); p = imread ([pathname, filename]); p = imresize(p, [300, 300]); imshow(p) handles.img=p; guidata(hObject, handles); 57 % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if isfield(handles,'img') h = handles.img; k = rgb2gray(h); B = double(h); C = double(B); for i=1:size(C,1)-2 for j=1:size(C,2)-2 Gx=1*C(i,j)+2*C(i,j+1)+1*C(i,j+2)+0+0+0-1*C(i+2,j)-2*C(i+2,j+1)-1*C(i+2,j+2); Gy=1*C(i,j)+0-1*C(i,j+2)+2*C(i+2,j)+0-2*C(i+1,j+2)+1*C(i+2,j)+0-1*C(i+2,j+2); %Gx=((2*C(i+2,j+1)+C(i+2,j)+C(i+2,j+2))-(2*C(i,j+1)+C(i,j)+C(i,j+2))); %Gy=((2*C(i+1,j+2)+C(i,j+2)+C(i+2,j+2))-(2*C(i+1,j)+C(i,j)+C(i+2,j))); B(i,j)=sqrt(Gx.^2+Gy.^2); end end imshow(B) handles.img = B; guidata(hObject, handles); end % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if isfield(handles,'img') d = handles.img; B=rgb2gray(d); C=double(B); for i=1:size(C,1)-2 for j=1:size(C,2)-2 Gx=-1*C(i,j)-1*C(i,j+1)-1*C(i,j+2)+0+0+0+1*C(i+2,j)+1*C(i+2,j+1)+1*C(i+2,j+2); 58 Gy=-1*C(i,j)+0+1*C(i,j+2)-1*C(i+2,j)+0+1*C(i+1,j+2)-1*C(i+2,j)+0+1*C(i+2,j+2); B(i,j)=sqrt(Gx.^2+Gy.^2); end end imshow(B) handles.img = B; guidata(hObject, handles); end % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) F = getframe(handles.axes1); Image = frame2im(F); %imwrite(Image, 'Image.jpg')uiputfile imwrite(Image, uiputfile('*.jpg; *.png; *bmp','Pick any file')); % --- Executes on button press in pushbutton8. function pushbutton8_Callback(hObject, eventdata, handles) % hObject handle to pushbutton8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if isfield(handles,'img') y=handles.img; B = imgaussfilt(y, 0.5); imshow(B) handles.img=B; guidata(hObject, handles); end % --- Executes on button press in pushbutton9. function pushbutton9_Callback(hObject, eventdata, handles) % hObject handle to pushbutton9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if isfield(handles,'img') q=handles.img; G = imgaussfilt(q, 1); imshow(G) 59 handles.img=G; guidata(hObject, handles); end % --- Executes on button press in pushbutton10. function pushbutton10_Callback(hObject, eventdata, handles) % hObject handle to pushbutton10 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if isfield(handles,'img') q=handles.img; G = imgaussfilt(q, 2); imshow(G) handles.img=G; guidata(hObject, handles); end % --- Executes on button press in pushbutton5. function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if isfield(handles,'img') b=handles.img; M=medfilt2(b,[3 3]); imshow(M) handles.img=M; guidata(hObject, handles); end % --- Executes on button press in pushbutton6. function pushbutton6_Callback(hObject, eventdata, handles) % hObject handle to pushbutton6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if isfield(handles,'img') b=handles.img; M=medfilt2(b,[5 5]); imshow(M) handles.img=M; guidata(hObject, handles); end % --- Executes on button press in pushbutton7. 60 function pushbutton7_Callback(hObject, eventdata, handles) % hObject handle to pushbutton7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if isfield(handles,'img') b=handles.img; M=medfilt2(b,[7 7]); imshow(M) handles.img=M; guidata(hObject, handles); end % --- Executes on button press in pushbutton11. function pushbutton11_Callback(hObject, eventdata, handles) % hObject handle to pushbutton11 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if isfield(handles,'img') i=handles.img; k=rgb2gray(i); imshow(k) handles.img=k; guidata(hObject, handles); end % --- Executes on button press in pushbutton12. function pushbutton12_Callback(hObject, eventdata, handles) % hObject handle to pushbutton12 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if isfield(handles,'img') a=handles.img; N=imnoise(a,'salt & pepper', 0.1); imshow(N) handles.img=N; guidata(hObject, handles); end 61