ئادەتتە ماتېماتىكىدىكى مۇرەككەپ ھېسابلاشلارنى Matlab دىن ئىبارەت ئىنتايىن كۈچلۈك بولغان دېتال ئارقىلىق ئېلىپ بارغىلى بولىدۇ. نۇرغۇن ماتېماتىكىلىق مودىللارنى دەل موشۇ دېتال ياردىمى بىلەن تېخىمۇ ئۈنۈملۈك ۋە تىز سۈرەتتە بارلىققا كەلتۈرگىلى ۋە تەتقىقاتلارنى ئېلىپ بارغىلى بولىدۇ. ئۇندىن باشقا چوڭ كۆلەملىك ھېسابات، تەھلىل ئىشلىرىدا مەزكۇر دېتالنىڭ ئىشلىتىلىش تېخىمۇ كەڭ. خوش، ئەمدى گېپىمىزگە كەلسەك: يىقىندا ئوقۇۋاتقان دەرىسلىرىمدىن بىرى "ھالەتلەرنى پەرىقلەندۈرۈش" (模式识别) دەرسىسدە ئاساسلىقى نۆۋەتتىكى تەسۋىرلىگۈسىز دەرىجىدە ئارتىپ كەتكەن ئۇچۇر، سېگىناللارنى ماس ماتېماتىكىلىق مودىللار بىلەن ئەقلىي ھالدا توپلىما گۇرۇپپىلارغا بۆلۈپ، يەنى ئىنتايىن كۆپ سانلىق مەلۇماتلارنى مەلۇم ئالاھىدىلىكلەر بويىچە خاس گۇرۇپپىلارغا ئايرىپ، ھالەتلىرىدە ئوخشاشلىق كۆپ بولغان ئاشۇ گۇرۇپپىلار بويىچە تەھىلىل يۈرگۈزۈش ۋە بىر تەرەپ قىلىشتىن ئىبارەت بىر تالاي تېخنىكىلارنى ئۈگىنەتتۇق. مۇئەللىمنىڭ دىيىشچە: Google, Taobao, Baidu دېگەندەك مۇلازىمەت دائىرىسى ئىنتايىن كەڭ بولغان تېخنىكا شىركەتلىرى بۇ خىل تېخنىكىلارنى ئەڭ كۆپ قوللىنىدىكەن. بۇ خىل توپلىما گۇرۇپپىلار بويىچە تەھلىل قىلىش ئىپادىلىرى ئىچىدە بىرقەدەر ئاددىي ۋە ئىشلىتىلىشى كۆپ بولغان K-Means ئۇسسۇلى بويىچە تاپشۇرۇق بېرىلگەن ئىدى. يىرىم كۈن دىگۈدەك ۋاقىت سەرىپ قىلىپ، كىتابتىكى ماتېماتىكىلىق فورمىلارنى فونكىسىيە ھالىتىگە ئايلاندۇرۇپ، ئاران دېگەندە ئەمەلگە ئاشۇردۇم. يەنى، Matlab دېتالى ئارقىلىق فونكىسىيە يېزىپ، سىناق تەرىقىسىدە بىر پارچە رەسىمنىڭ رەڭگىنى RGB قىممىتى بويىچە سانلىق مەلۇماتقا ئايلاندۇرۇپ، ئاندىن ئاشۇ مەلۇماتلار ئىچىدىن پەرىقلىرى بىرقەدەر روشەن بولغان ئۈچ نوقتىنى تاللاپ، باشقا رەڭ نوقتىلىرىنىڭ تاللانغان ئۈچ نوقتا بىلەن بولغان ئارلىقىنى تېپىپ، ئاندىن ئۇلار ئۈچ نوقتىنىڭ قايسىغا يىقىن بولسا شۇ نوقتىنى مەركەز قىلغان گۇرۇپپىغا تەۋەلەپ بېرىپ، رەسىم يۈزىدىكى پۈتكۈل رەڭ قىممەتلىرىنى بەلگىلەنگەن ئۈچ گۇرۇپپىغا بۆلۈپ تەھلىل قىلدىم. ئاقىۋەتتە ئەڭ قېنىق رەڭلىرى بىر گۇرۇپپا، نورمال رەڭلىرى بىر گۇرۇپپا، سۇس رەڭلىرى بىر گۇرۇپپا بويىچە ئايرىلىپ، ئەسلى رەھىمنىڭ ئىزناسى شەكىللەندى. دېمەك موشۇ خىل ئۇسسۇلدا توپلىما گۇرۇپپىلارغا بۆلىۋالغاندىن كېيىن، ھەربىر گۇرۇپپىنى بىرلىك قىلىپ، ئىنتايىن چوڭ بولغان سانلىق مەلۇماتلارنى قولاي بىر تەرەپ قىلىشقا بولىدۇ.
يۇقارقى قۇرۇق گەپلەرنى مەيلى چۈشىنىڭ - چۈشەنمەڭ، تۆۋەندە شۇنچە جاپادا پۈتكەن كودلارنى ۋە ئاددىيلا سىناق نەتىجىسىنى چاپلاپ قويدۇم، قېنى تەپسىلاتىغا مەرھەمەت:
ئاۋۋال ئۈنۈمىنى كۆرىمىز: ئەسلى بىر رەڭلىك گۈل ئىدى، ئاۋۋال رەڭسىز ھالەتكە ئايلاندۇرۇپ، ئاندىن يۇقارقى ئۇسسۇل بويىچە رەڭ نوقتىلىرىنىڭ قىممىتىنى گۇرۇپپىلارغا بۆلۈپ تەھلىل قىلىش ئارقىلىق ئاخىرىدا پۈتكۈل رەسىم ئاساسەن ئۈچ رايۇنغا بۆلۈندى.
رەسىمدىن كېيىن كود قىسى كەتتى. ئەلۋەتتە Matlab دېتالىغا چاپلاپ، مۇندەرىجىگە ئىسمى gul.jpg بولغان بىرەر رەسىمنى تاشلاپ، ئۈنۈمىنى كۆرۈپ باقسىڭىز بولىدۇ.
clc clear tic RGB= imread ('gul.jpg'); % resimni oqup alimiz img=rgb2gray(RGB); %resim renggini RGB qimmet boyiche alimiz [m,n]=size(img); subplot(2,2,1),imshow(img);title(' resim1: Esli resim') subplot(2,2,2),imhist(img);title(' resim2: rengsiz esli resim') hold off; img=double(img); for i=1:200 c1(1)=25; c2(1)=125; c3(1)=200; % Uch dane K noqtini tallap Toplima Guruppa boyiche tehlil qilish merkizini bikitimiz r=abs(img-c1(i)); g=abs(img-c2(i)); b=abs(img-c3(i));% Resim yuzidiki reng qimmetlirining K noqta arliqini tapimiz r_g=r-g; g_b=g-b; r_b=r-b; n_r=find(r_g<=0&r_b<=0);%Herqaysi qimmetlerni K noqtigha eng yiqin kilidighanliri boyiche uch Guruppigha ayriymiz n_g=find(r_g>0&g_b<=0);% her Guruppining merkizini tapimiz n_b=find(g_b>0&r_b>0);% eng chong Guruppa merkizini tapimiz i=i+1; c1(i)=sum(img(n_r))/length(n_r);%Barche reng qimmetlirining otturiche qimmitini tepip, kiyinki reng qimmitining merkizi qilimiz c2(i)=sum(img(n_g))/length(n_g);%Barche reng qimmetlirining otturiche qimmitini tepip, kiyinki reng qimmitining merkizi qilimiz c3(i)=sum(img(n_b))/length(n_b);%Barche reng qimmetlirining otturiche qimmitini tepip, kiyinki reng qimmitining merkizi qilimiz d1(i)=abs(c1(i)-c1(i-1)); d2(i)=abs(c2(i)-c2(i-1)); d3(i)=abs(c3(i)-c3(i-1)); if d1(i)<=0.001&d2(i)<=0.001&d3(i)<=0.001 R=c1(i); G=c2(i); B=c3(i); k=i; break; end end R G B img=uint8(img); img(find(imgR&img G))=255; toc subplot(2,2,3),imshow(img);title(' resim3: Toplashturulghan resim') subplot(2,2,4),imhist(img);title('resim4: toplashturulghandin kiyinki diagiramma')
بەك مۇرەككەپ چۈشەندۈرۈپسىز جۇمۇ! Matlab نىڭ كۈچلۈك ئىقتىدارىغا مەنمۇ بەك قايىل. بۇنى سىزىقلىق ئالگىبرا دەرسىدە تېخىمۇ بەك ھېس قىلغان ئىدىم.Matlab نىڭ ئەڭ چول ئالاھىدىلىكىنى كومپىلىكىس ساننى ھېسابلاش بىرلىكى قىلغانلىقىمىكىن دەيمەن.ئۇنىڭدىن باشقا ئېچىش ئىقتىدارىمۇ ناھايىتى كۈچلۈك.بۇنىمۇ شۇنداق ئۆگەنگۈم بولسىمۇ لېكىن بەك تاشلىنىپ قالدى.
شۇنچە ئاددىي چۈشەندۈرەي دېسەممۇ، «سامساق ئاكام قاينايدۇ» دېگەندەك بىر نەرسە بوپ قالدى شۇ. ئەمما ماۋۇ Matlab دېگەن ھەقىقەتەن يامان نەرسە ئۇ ….
بۇنى ئۈگۈنىشنى باشلاپ كەتتىم تەشناكا. بۇنى سىناپ باققان ئىدىم، پەچەت چىقىپتۇ ،ئازراق ئۈگۈنۈپ بۇلۇپ سىز بىلەن ئاندىن پىكىر ئالماشتۇراي.ھەھە :توۋا : :توۋا :
«كالىنىڭ بېشىغا كەلگەن كۈن موزاينىڭ بېشىغىمۇ كەپتۇ» دېگەن شۇ – دە! بۇ نەرسىنى تېخى تۈزۈك ئۆگنىسىلە ھەرقاچان…
شۇنى دىمەمسىز! بىراقلا دەرىسلەر تەسلىشىپ كەتتى. تىللارنى بىر-بىرسى بىلەن ئارلاشتۇرغىلى تۇردۇم مانا .قانداق قىلىدىغان ئىشكى.