මේක Matlab වල image processing පාවිච්චිකරලා කරන්න මම උත්සාහයක් ගත්තා. මේකේදී මම යොදාගත්තේ ලගදී විපක්ශය වැලිවේරිය සිද්දියට විරුද්ධව කරපු උද්ගෝෂණයේ එක රූප රාමුවක්. මුලු උද්ගෝෂණයේම පිරිස ගණනය කරන්න මනාව සැලසුම් කරලා මුලු පිරිසම ආවරණය වෙන්න රූප කිහිපයක් හෝ නියමුවන් රහිත කේලමා කෙනෙක් ගෙන් ගුවන් ඡායාරූපයක් ගන්න ඕන. මේ ලිපිය මෙය කලහැකි බව හා එහි පදනම පෙන්වීමට පමණක් ලියවෙන්නක් බව සලකන්න.
පලමුවෙන්ම රූපය ක්රොප් කරලා අනවශ්ය කොටස් අයින් කරලා Matlab වල බින් එකට සේව් කරගත්තා. ඊට පස්සේ පහත් කෝඩ් එකෙන් රූපය variable එකකට assign කරගන්න ඕන. මොනවා කරන්නත් රූපය වල ඇතුලට ගන්න ඕනනේ.
img1=imread('img4.jpg');
imshow(img1)
ඊටපස්සේ රූපයේ වර්ණ ඉවත් කරලා අදුරු තැන් කලුකරලා ආලෝකමත් තැන් සුදු කර ගන්නවා.
img1=rgb2gray(img1);
imshow(img1)
img2=im2bw(img1,graythresh(img1));
imshow(img2)
අනතුරුව පණුවා ඔපරේටර් (~ operator ) එක පාවිච්චිකරලා කලු සුදුත් සුදු කලුත් කරගන්නවා.
img2=~img2;
imshow(img2)
අනතුරුව කලුපාට උන සීමා මයිම් සංඛ්යාව කියන B පැරාමීටර් එකට කරගෙන text ක්මාන්ඩ් එකෙන් එක මත පෙන්ව ගන්නවා.
B = bwboundaries(img2);
imshow(img2)
text(10,10,strcat('\color{green}Objects Found:',num2str(length(B))))
hold on
(තිරය මත දිස්වූ අගය 1020 ක්, ආසන්න වශයෙන් 1000 ක් )
වැඩි දුර පැහදිලි කරගන්න නම් අපට සීමාවන් රූපය මත ඇද ගන්නත් පුලුවන්.
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'g', 'LineWidth', 0.2)
end
මැනුවලි ගැනලා බැලුවාමත් 950ක් වගේ ගානක් ආවා, වැඩේ සාර්ථකයි. මම අන්තර් ජාලයෙන් හොයාගත් code එකක් තමා මේකට යොදා ගත්තේ, image processing වලට මම අලුත්. ඒ හින්දා මේක හොදට දන්න අය තව දැනුවත් කරලා කමෙන්ට්ස් දානවා නම් හරිම සතුටුයි.