Saturday, August 17, 2013

උද්ගෝෂණයකට, රැලියකට හෝ රැස්වීමකට සහභාගී වූ හරිම ගණන Matlab ඇසුරෙන් ගණනය කරමු

අපේ රටේ වගේම ලෝකය පුරාම දැන් උද්ගෝෂණ රැල්ලක් පැතිර යනවා. සමහර ඒවානම් හරිම දරුණුයි, හරියට මේ දවස්වල ඊජිප්තුවේ එක වගේ ඒවා. තිස්තුන් කෝටියක් දෙවි පිහිටෙන් අපේ රටේ නම් එහෙම ඒවා ඇති නොවේවි. ඒත් අපේ රටෙත් උද්ගෝෂණ,  රැලි හා රැස්වීම් එහෙම නම් අඩුනැහැනේ. හැබැයි මේ හැම එකකම පොඩි සමාන ලක්ෂණයක් තියෙනවා. ඒතමයි සහභාගී උන ගාන පිලිබද අඩු වැඩි වශයෙන් පැවසීම.  රැලියට පක්ශ අය ආපු ගාන වැඩිකරලා පෙන්නන අතර විරුද්ධ අය කියන්නේ අඩු අගයක්. මේ කරුණ වගේම උද්ගෝෂණ හා රැලිවලට ආපු ගාන හරියට දැනගන්න එක ආරක්ෂක අංශ වලටත් හරිම වැදගත්. කොච්චර කුලු පොලු හමුදාවක් යවන්න ඔනද, වතුර විදින තුවක්කු කීයක් ඔනද වගේ සැලසුම් සකස් කරන්නත් පසුව සකස් කරන බුද්ධි අංශ වාර්තාවලටත් මේ හරිම අගය වැදගත්.

මේක 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 වලට මම අලුත්. ඒ හින්දා මේක හොදට දන්න අය තව දැනුවත් කරලා කමෙන්ට්ස් දානවා නම් හරිම සතුටුයි.

15 comments:

  1. Replies
    1. බොහොම ස්තූතියි උද්යෝගීමත් කිරීම ගැන.

      Delete
  2. මාත් කාලෙක ඉඳන් ආසාවෙන් හිටියෙ Matlab , ඉගෙනගන්න.... බොහොම ස්තුතියි !!

    ReplyDelete
    Replies
    1. බොහොම ස්තූතියි උද්යෝගීමත් කිරීම ගැන. ඉගෙන ගන්න හොදම විදිහ තමයි මොකක් හරි team එකකට එකතුවෙන එක. නිල වශයෙන් බැරිනම් volunteer හැටියට හරි හොද team එකක් එක්ක එකතු වෙලා පටන් ගන්න.

      Delete
  3. නියමයි ! මාත් මේ දවස් වල Matlab ගැන හොයනවා. ඔයාගෙ ලිපිය matlab වල applications ගැන දෙන්න පුළුවන් කදිම ප්‍රායෝගික උදාහරණයක් ! දිගටම මේ වගේ දේවල් ගැන ලියන්න.

    ReplyDelete
    Replies
    1. බොහොම ස්තූතියි උද්යෝගීමත් කිරීම ගැන. ඉගෙන ගන්න හොදම විදිහ තමයි මොකක් හරි team එකකට එකතුවෙන එක. නිල වශයෙන් බැරිනම් volunteer හැටියට හරි හොද team එකක් එක්ක එකතු වෙලා පටන් ගන්න.

      Delete
  4. වැදගත් ලිපියක්. මට ඔබේ ඉ-මේල් ලිපිනය දෙන්න පුළුවන්ද?

    ReplyDelete
    Replies
    1. මම ඔයාගේ ඊමේල් එක හොයාගත්තා, මම ඔයාට ඊමේල් එකක් එවන්නම්

      Delete
  5. ###@මේ කරුණ වගේම උද්ගෝෂණ හා රැලිවලට ආපු ගාන හරියට දැනගන්න එක ආරක්ෂක අංශ වලටත් හරිම වැදගත්. කොච්චර කුලු පොලු හමුදාවක් යවන්න ඔනද, වතුර විදින තුවක්කු කීයක් ඔනද වගේ සැලසුම් සකස් කරන්නත් පසුව සකස් කරන බුද්ධි අංශ වාර්තාවලටත් මේ හරිම අගය වැදගත්.@####

    විද්‍යාවේ අරමුණ මිනිසාට සේවය කිරීමයි. මක්නිසාද යත් විද්‍යාව ඉබාගාතේ යන්නක් නොවන නිසා. ඒ නිසා මේ ලිපියෙන් ආරක්ෂක අංශයට දීලා තියෙන ජනතාව මර්ධනය කිරීමේදී සහය තොරතුරු ටික ඉවත් කරන්න කියල මම ඔබෙන් ඉල්ලා හිටිනව. (ඔබ විශේෂකර තිබෙන තොරතුරු) සාධාරණ ජනතා අරගලයක් මර්ධනය කර වෙඩි තබන්න ඔබේ ලිපියේ දේවල් උපකාර උනොත් ඇල්ෆ්‍රඩ් නොබෙල්ට වගේ ඔබටත් ඔබෙන් කිසිදා සමාව නොලැබේවි. ඔබේ හැම ලිපියක්ම පොදු ජනතාවගේ සහ එය ප්‍රාර්ථනා කරන්නන්ගේ සුභ සිද්ධිය මිස ජනතාවට වෙඩි තබන පැලැන්තියේ උදව්වට නොවිය යුතුයි. නියම ජනතා විදැදුරෙක් වන්නේ එවිටයි. ඔහු සිටිය යුත්තේ ජනතාවගේ පැත්තේයි.
    ඔබගේ ලිපි ඉතා වැදගත්. දිගටම ඔබේ දැනුම බෙදා දෙන්න. ජනතාවට......

    ReplyDelete
    Replies
    1. බොහොම ස්තූතියි, ඔනම දේක දෙපැත්තක් තියනවා. හැම වෙලේම ජනතාවත් අහින්සක නෑ. හැමවෙලෙම ආන්ඩුව නරකත් නෑ.

      Delete
  6. ඇත්ත. මිනිසාගේ පරම යුතුකම මිනිසාට සේවය කිරීමයි. ඒ කිව්වෙ ජාති ආගම් බේද නැතිව මානව සුභ සිද්ධිය තකා විද්‍යාඥයා කටයුතු කරන්න ඕනෙ. ඔබ කරන සේවය අප අගයනව. ඔබේ කලින් ලිපිවල තිබුණු ඒ ගුණය ඇයි මේ ලිපියෙදි නැති කර ගත්තෙ. මේක තාක්ෂණික තොරතුරු මුවාවෙන් හමුදාව කරන මර්ධනයට උදව් කිරීමක් සහ අනුබල දීමක්.

    ReplyDelete
    Replies
    1. බොහොම ස්තූතියි, ඔනම දේක දෙපැත්තක් තියනවා. හැම වෙලේම ජනතාවත් අහින්සක නෑ. හැමවෙලෙම හමුදාව නරකත් නෑ.

      Delete
  7. මට හරිම දුකයි ඔයා කරපු මේ වැඩේට. මොකද මං ඔයාට ගොඩක් ගරුකලා අපේ රටට ඕනේ මේ වගේ ලාංකික ජනතාව වෙනුවෙන් දැනුම බෙදා දෙන විද්‍යාඥයෙක් කියල. මොකද මම ඇස්දෙකෙන්ම දැක්කා අපිට වෙඩි තියපු ඒ දුෂ්ඨ හමුදාකාරයො. අනේ අපි උන්ට මේ අත්වලින්ම බෝධි පූජා තිබ්බනෙ. හැම තැනම තියෙන්නෙ බොරුව. ඉන්නෙ බොරුකාරයො වංචාකාරයො. බැටලු හම පොරවගත්ත වෘකයො. ඔයාගෙත් වෙනසක් නෑ වගේ.
    -වැලිවේරියේ දර්ශි-

    ReplyDelete
    Replies
    1. බොහොම ස්තූතියි, ඔනම දේක දෙපැත්තක් තියනවා. හැම වෙලේම ජනතාවත් අහින්සක නෑ. හැමවෙලෙම හමුදාව නරකත් නෑ

      Delete
  8. හොඳ එලිදරව්වක්

    ReplyDelete