ဓာတ်ပုံ တပုံ (test image) ပေးလိုက်ရင် သိမ်းထားတဲ့ ပုံတွေထဲက အတူဆုံး ပုံတွေ ကို ပြန်ရွေးထုတ်ပေးတဲ့ program ကို MatLab နဲ့ ရေးကြည့်ထားပါတယ်။
Showing posts with label Image Processing. Show all posts
Showing posts with label Image Processing. Show all posts
Thursday, April 23, 2015
Thursday, January 8, 2015
Photographing the Night Sky
ညအချိန် ကြယ်တွေကို ဓာတ်ပုံ ရိုက်ကြည့်ချင်နေတာ ကတော့ ကြာပြီ။ The Mountain ဆိုတဲ့ ဗွီဒီယိုလေးကို ကြည့်မိပြီး တော်တော် သဘောကျဖူးတယ်။
ဒါပေမယ့် စင်ကာပူမှာက ကောင်းကင် မကြည်လင်တဲ့ ညကများတယ်။
တစ်ခါက ကြယ်တွေကို နည်းနည်းမြင်ရလို့ ဆိုပြီး အိမ်နောက်နားက နည်းနည်းမှောင်တယ် ထင်တဲ့ဖက်ကို သွားရိုက်ကြည့်ဖူးတယ်။
အဲဒါတောင် အနီးအနားက လမ်းမီးတွေ၊ တိုက်တာတွေက ထွက်တဲ့ အလင်းရောင် light pollution တွေက များလွန်းလို့ ထွက်လာတဲ့ ပုံတွေက တစ်ပုံလုံး ဖွေးသာသွားတယ် ကြယ်တွေက ကောင်းကောင်းတောင် မပေါ်ဘူး။
ဒါနဲ့ စိတ်ပျက်ပြီး RAW ဖိုင်တွေကစ အကုန်ပြန်ဖျက်လိုက်တယ်။
လက်ရှိကင်မရာ Nikon D300s ကလည်း ငါးနှစ်လောက်တောင် ရှိပြီဆိုတော့ သူ့ရဲ့ DX Sensor လေးက နောက်ထွက်တဲ့ Sensor တွေနဲ့ စာရင် အလင်းရောင်အားနည်းတဲ့အခါမှာ noise တွေပိုများ လို့များလားပေါ့။
မန္တလေး နားက မြခနောက် တောင်ထိပ်လို နေရာမျိုးကို တက်ရိုက်ရရင်တော့ မဆိုးလောက်ဘူးလို့ စဉ်းစားမိတယ်။
Thursday, December 11, 2014
Sepia Toning in GIMP
အဖြူအမဲ ဓာတ်ပုံတွေ တရက်တပုံနဲ့ ငါးရက် ငါးပုံတိတိတင်ဖို့ ဖေ့ဘုတ်မှာ challenge လုပ်ခံရတာနဲ့ အဖြူအမဲ ပုံတွေ ဖေ့ဘုတ်မှာ တင်ဖြစ်ပါတယ်။ နောက်တော့ ရိုးရိုး အဖြူအမဲ ပုံတင်ရတာ ပျင်းလာတာနဲ့ ရှေးခေတ်က အဖြူအမဲ ဓာတ်ပုံ အဟောင်းပုံမျိုး ဖြစ်အောင် ဝါကျန့်ကျန့် အရောင် မျိုး GIMP မှာ ထည့်ကြည့်ထားပါတယ်။ Sepia Toning မှာ အသေးစိတ် ပြောထားတဲ့ အတိုင်း လုပ်ထားတာပါ။ အခု ဒီပို့စ်မှာ တော့ အဲဒါကို အကျဉ်းချုပ်ပြီး မှတ်မိလွယ်အောင် ပြန်ချုံငုံ ရေးလိုက်ပါတယ်။ မူရင်းပုံ ကအောက်က ပြထားတဲ့ အတိုင်းပါ။
Friday, August 22, 2014
Batch Processing of Images in GIMP
ဓာတ်ပုံတွေ အများကြီးကို တစ်ခါတည်း နာမည်ပြင်ချင်တာ၊ အရွယ်အစား ပြောင်းချင်တာ၊ ဖိုင်အမျိုးအစား ပြောင်းချင်တာ တွေ လုပ်ချင်ရင် GIMP မှာ လုပ်လို့ရပါတယ်။ ပထမဆုံး အနေနဲ့ David's Batch Processor ဆိုတဲ့ Plug-in ကို http://members.ozemail.com.au/~hodsond/dbp.html ဆိုတဲ့လင့်မှာ သွားယူဖို့ လိုပါတယ်။ ပြီးရင် ဒေါင်းလုပ်လုပ်ထားတဲ့ ဖိုင်ကို extract လုပ်ပြီးရင် ရလာတဲ့ dbp.exe ဆိုတဲ့ဖိုင် ကို C:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins ဆိုတဲ့ နေရာမှာ ထားလိုက်ပါမယ်။ နောက် GIMP ရဲ့ Filters menu မှာ Batch Process... command ကိုနှိပ်လိုက်ရင် အောက် ကအတိုင်း David's Batch Processor ဆိုတဲ့ pop-up windows ပေါ်လာရင် လိုချင်တဲ့ batch processing လုပ်လို့ရပါပြီ။
Friday, August 15, 2014
Selective Color Modification
အောက်မှာ ပြထားတဲ့ ပုံထဲက လမ်းအပြာလေးကိုပဲ ရွေးပြီး အစိမ်းရောင် ပြောင်းကြည့် ချင်တာနဲ့ MatLab program လေး ရေးကြည့်ပြီး Octave သုံးပြီး run ကြည့်လိုက်တယ်။
အပြာရောင် ကို အစိမ်းပြောင်းချင်တာဆိုတော့ rgb color model မှာပဲ blue နဲ့ green ကို နေရာချင်း လဲလိုက်ရင် ရပေမယ့် သိပ် ယေဘူယျ မဆန်ဘူးထင်တာနဲ့ hsv color model သုံးလိုက်တယ်။
အဲဒါဆို hue ကို ကြိုက်တဲ့ အရောင်ကနေ လိုချင်တဲ့ အရောင်ကို အလွယ်တကူ ပြောင်းလို့ရသွားတာပေါ့။
Wednesday, March 7, 2012
Skeleton of Image Region
ပုံရိပ် တစ်ခုရဲ့ တည်ဆောက်ပုံ ပုံသဏ္ဌာန် ကို မျဉ်းကြောင်းများနဲ့ တုတ်ချောင်းပုံ လုပ်ပြီး ကိုယ်စားပြု ဖော်ပြနိုင်ပါတယ်။ အဲဒီလို ဖော်ပြဖို့အတွက် ပုံသဏ္ဌာန် တစ်ခုကို တဖြည်းဖြည်း ပိန်ပါးသွားအောင် လုပ်နည်း တစ်ခုခု ကို သုံးလို့ရပါတယ်။ ရလာတဲ့ မျဉ်းကြောင်းများနဲ့ တုတ်ချောင်းပုံ ကို အဲဒီ ပုံရဲ့ အရိုး (skeleton) လို့ ခေါ်ပါမယ်။ ဒီနည်းဟာ စာလုံးများကို စက်က သိရှိနားလည် မှတ်မိ အောင် လုပ်တဲ့ နေရာ (optical character recognition) တွေမှာ ပဏာမ အဆင့် အနေနဲ့ အသုံးကျကောင်း ကျနိုင်ပါတယ်။ အောက်ကပုံတွေမှာ နမူနာ မူရင်းပုံနဲ့ သူ့ရဲ့ အရိုးကို ဖော်ပြထားပါတယ်.
ပုံရိပ်တစ်ခု ရဲ့ အရိုးကို နည်းအမျိုးမျိုးနဲ့ ရယူနိုင်ပြီး အဲဒီ နည်းတွေထဲက လူသိများတဲ့ နည်းနှစ်နည်းက အလယ်ဝင်ရိုးပြောင်းနည်း Medial Axis Transformation (MAT) နဲ့ နှစ်ဆင့်ပါးနည်း Two Step Thinning တို့ပါ။ MAT မှာ ပုံသဏ္ဌာန် ထဲမှာ ရှိတဲ့ အစက် တစ်စက် ချင်းစီ အတွက် သူတို့ ရဲ့ အနီးဆုံး အနားသတ် ကို လိုက်ရှာပါတယ်။ အဲဒီလို အကွာအဝေးတူ အနီးဆုံး အနားသတ် တစ်ခုမက ရှိတဲ့ အစက်ကို အရိုး လို့သတ်မှတ်ပါတယ်။ MAT ကနားလည်ဖို့ လွယ်ပေမယ့် သူ့ကိုရဖို့ တွက်ချက်မှုတွေ အများကြီး လိုပါတယ်။ သူ့ကို တွက်ဖို့ အကွာအဝေးပုံစံ ပြောင်းခြင်း (distance transform) ကို အရင် လုပ်ပါတယ်။ အကွာအဝေးပုံစံ ပြောင်းတယ်ဆိုတာ ပုံသဏ္ဌာန် ထဲမှာ ရှိတဲ့ အစက် တစ်စက် ချင်းစီ ကို အနီးဆုံး အနားသတ်အထိ အကွာအဝေးနဲ့ အစားထိုးတာပါ။ ရလာတဲ့ ပုံမှာ အနားသတ်နဲ့ နီးတဲ့ အစက်က အကွာအဝေး တန်ဖိုးနည်းတော့ အလင်းအားပျော့ ပြီး၊ အနားသတ်နဲ့ ဝေးတဲ့ အစက်က အကွာအဝေးတန်ဖိုးကြီးတော့ ပိုလင်းပါမယ်။ နောက် အစက်တစ်စက် ခြင်းစီကို ဘေးတိုက် ဒါမှမဟုတ် ဒေါင်လိုက် ကပ်ရပ် အစက်တွေနဲ့ ယှဉ်ကြည့်ပြီး အလယ်မှာ အမြင့်ဆုံး ဖြစ်နေတဲ့ အစက်တွေကို အရိုးလို့ သတ်မှတ်ပါမယ်။ နမူနာ MATLAB ကုဒ် ကို ဒီမှာ (MATeg.m) ကြည့်နိုင်ပါတယ်။ မူရင်း ပုံသဏ္ဌာန်ရယ်၊ အကွာအဝေးပုံစံ ရယ်၊ ရလာတဲ့ အရိုးရယ် ကို အောက်က ပုံတွေမှာ ကြည့်နိုင်ပါတယ်။
နှစ်ဆင့်ပါးနည်း ကတော့ MAT နဲ့ယှဉ်ရင် ပိုမြန်၊ ပိုထိရောက်ပါတယ်။ နှစ်ဆင့်ပါးနည်း က ပုံသဏ္ဌာန် တစ်ခုရဲ့ အနားတွေကို ထပ်တလဲလဲ ဖျက်သွားတာပါ။ အဲဒီလို ဖျက်တဲ့ အခါမှာ အဆုံးမှတ်တွေကို မဖျက်ပါဘူး။ တနေရာနဲ့ တနေရာ ဆက်စပ်နေတဲ့ အမှတ်တွေကို မဖျက်ပါဘူး။ ပုံသဏ္ဌာန် ထဲမှာ ရှိတဲ့ အစက် တွေကို တန်ဖိုး တစ်ရှိတယ်လို့ မှတ်ယူ မှာ ဖြစ်ပြီး နောက်ခံ အစက်တွေကို တော့ တန်ဖိုး သုည ရှိတယ် လို့ မှတ်ယူပါမယ်။ ဒီနည်းမှာ အဆင့် နှစ်ဆင့် ကို ပုံပေါ်မှာ အထပ်ထပ် အဖန်ဖန် နောက်ဆုံး မပြောင်းလဲတဲ့ အရိုး ရတဲ့အထိ သုံးသွားမှာပါ။ အပေါ်ပုံမှာ အလယ် အစက်ရဲ့ ကပ်ရပ် အစက်တွေကို အခေါ်အဝေါ်သတ်မှတ်ပုံကို ပြထားပါတယ်။ ပထမ အဆင့်မှာ အစက် p1 ကို အောက်က အချက်လေးချက်နဲ့ ကိုက်ညီရင် ဖျက်ပစ် ပါမယ်။ (a) 2 ≤ N(p1) ≤ 6 (b) T(p1) = 1 (c) p2.p4.p6 = 0 (d) p4.p6.p8 = 0 အဲဒီမှာ N(p1) ဆိုတာက p1 နဲ့ ကပ်ရပ် အစက်တွေထဲက သုညမဟုတ်တဲ့ အစက် အရေအတွက်ဖြစ်ပြီး၊ T(p1) ဆိုတာက p2, p3, ... , p8, p9, p2 ဆိုတဲ့ အစီအစဉ်အတိုင်း ကြည့်သွားရင် ၀ ကနေ ၁ ကို ပြောင်းသွားတဲ့ အရေ အတွက်ပါ။ ဒုတိယ အဆင့်မှာ (a) နဲ့ (b) ကအတူတူပါပဲ။ ဒါပေမယ့် (c) နဲ့ (d) ကတော့ အောက်မှာ ပြထားတဲ့ အတိုင်း ပြောင်းသွားပါတယ်။ (c') p2.p4.p8= 0 (d') p2.p6.p8= 0 ပထမ အဆင့် ကို ပုံသဏ္ဌာန်တစ်ခုရဲ့ အနားသတ်ပေါ်မှာရှိတဲ့ အစက်တိုင်းအတွက် စဉ်းစားပါမယ်။ အချက် (a) ကနေ (d) ထဲက တစ်ချက်ချက် မကိုက်တာနဲ့ အဲဒီ အစက်ကို မဖျက်တော့ ပါဘူး။ အချက်အားလုံး ကိုက်ညီရင် တော့ ဖျက်ဖို့ အတွက် မှတ်ထားလိုက် ပါမယ်။ ဒါပေမယ့် အဲဒီ အစက် ကို အနားသတ် ပေါ်မှာရှိတဲ့ အစက် အားလုံးကို စဉ်းစားလို့ မပြီးမချင်း တကယ် မဖျက်သေးပါဘူး။ အဲဒီလို နောက်ကျမှ ဖျက်တဲ့ အတွက် တစ်ခြား အစက် တွေကို စဉ်းစား နေတဲ့ အချိန်မှာ ပုံသဏ္ဌာန် ပြောင်းသွားတာကို ကာကွယ်နိုင်ပါတယ်။ ပထမ အဆင့် ကို အနားသတ်ပေါ်မှာရှိတဲ့ အစက် အားလုံးကို စဉ်းစာပြီးပြီဆိုတာနဲ့ ဖျက်ဖို့မှတ်ထားတဲ့ အစက် အားလုံးကို ဖျက်လိုက်ပါမယ်။ (အစက်ရဲ့ တန်ဖိုးကို သုည ပြောင်းလိုက်တာပါ။) ရလာတဲ့ ရလဒ် ပေါ်မှာ ဒုတိယ အဆင့် ကိုလဲ ပထမအဆင့် အတိုင်း ထပ်သုံးပါမယ်။ ဒီ အဆင့်နှစ်ဆင့်ကို အကြိမ်ကြိမ် အဖန်ဖန် ပြန်သုံးမှာ ဖြစ်ပြီး အကြိမ်တစ်ကြိမ်တိုင်းမှာ အောက်က လုပ်ငန်းလေးခုကို လုပ်ပါတယ်။ (၁) ပထမ အဆင့်ကို သုံးပြီး ဖျက်ရမယ့် အစက်တွေကို မှတ်ပါတယ်။ (၂) မှတ်ထားတဲ့ အစက်တွေကို ဖျက်ပါတယ်။ (၃) ဒုတိယ အဆင့်ကို သုံးပြီး ဖျက်ရမယ့် အစက်တွေကို မှတ်ပါတယ်။ (၄) မှတ်ထားတဲ့ အစက်တွေကို ဖျက်ပါတယ်။ ဒီအဆင့်တွေကို သုံးပြီး ပါးပါးသွားရင်း နောက်ဆုံး ဖျက်စရာ အစက် မကျန်တော့ဘူးဆိုရင် ရပ်လိုက်ပါမယ်။ ရလာတဲ့ ပုံက အရိုးဖြစ်ပါတယ်။ အချက် (c) p2.p4.p6 = 0 နဲ့ (d) p4.p6.p8 = 0 ကို တစ်ခါထဲ ပေါင်းပြီး (p4 = 0 or p6= 0) or (p2=0 and p8=0) လို့ တန်းစစ်လို့လဲရပါတယ်။ အဲဒီလိုပဲ (c') နဲ့ (d') ကိုလဲ (p2=0 or p8=0) or (p4=0 and p6=0) လို့ ပေါင်းစစ်လို့ ရပါတယ်။ Two Step Thinning အတွက်နမူနာ MATLAB ကုဒ်ကို ဒီမှာ (TSTeg.m) တွေ့နိုင်ပါတယ်။ ရှေ့မှာ ဖော်ပြခဲ့တဲ့ ကုဒ်တွေက နည်းတွေကိုနားလည်ဖို့ ရယ်၊ တစ်ခြား ပရိုဂရမ် ဘာသာတွေနဲ့ ပြန်ရေးဖို့ရယ် အတွက်တော့ အထောက် အကူ ဖြစ်မယ်ထင်ပါတယ်။ တကယ်တော့ MATLAB မှာ bwmorph ဆိုတဲ့ ဖန်ရှင်ကို သုံးလိုက်တာနဲ့ အရိုးကို တန်းရနိုင်ပါတယ်။ sk=bwmorph(bwImg,'skel',Inf); အဲဒီလိုခိုင်းလိုက်ရင် ထွက်လာတဲ့ ရလဒ် ကို အောက်မှာ ပြထားပါတယ်။ Reference: Rafael C. Gonzalez, Richard E. Woods, Steven L. Eddins, "Digital Image Processing Using MATLAB", Second Edition, Mc Graw Hill (Asia), 2011.
နှစ်ဆင့်ပါးနည်း ကတော့ MAT နဲ့ယှဉ်ရင် ပိုမြန်၊ ပိုထိရောက်ပါတယ်။ နှစ်ဆင့်ပါးနည်း က ပုံသဏ္ဌာန် တစ်ခုရဲ့ အနားတွေကို ထပ်တလဲလဲ ဖျက်သွားတာပါ။ အဲဒီလို ဖျက်တဲ့ အခါမှာ အဆုံးမှတ်တွေကို မဖျက်ပါဘူး။ တနေရာနဲ့ တနေရာ ဆက်စပ်နေတဲ့ အမှတ်တွေကို မဖျက်ပါဘူး။ ပုံသဏ္ဌာန် ထဲမှာ ရှိတဲ့ အစက် တွေကို တန်ဖိုး တစ်ရှိတယ်လို့ မှတ်ယူ မှာ ဖြစ်ပြီး နောက်ခံ အစက်တွေကို တော့ တန်ဖိုး သုည ရှိတယ် လို့ မှတ်ယူပါမယ်။ ဒီနည်းမှာ အဆင့် နှစ်ဆင့် ကို ပုံပေါ်မှာ အထပ်ထပ် အဖန်ဖန် နောက်ဆုံး မပြောင်းလဲတဲ့ အရိုး ရတဲ့အထိ သုံးသွားမှာပါ။ အပေါ်ပုံမှာ အလယ် အစက်ရဲ့ ကပ်ရပ် အစက်တွေကို အခေါ်အဝေါ်သတ်မှတ်ပုံကို ပြထားပါတယ်။ ပထမ အဆင့်မှာ အစက် p1 ကို အောက်က အချက်လေးချက်နဲ့ ကိုက်ညီရင် ဖျက်ပစ် ပါမယ်။ (a) 2 ≤ N(p1) ≤ 6 (b) T(p1) = 1 (c) p2.p4.p6 = 0 (d) p4.p6.p8 = 0 အဲဒီမှာ N(p1) ဆိုတာက p1 နဲ့ ကပ်ရပ် အစက်တွေထဲက သုညမဟုတ်တဲ့ အစက် အရေအတွက်ဖြစ်ပြီး၊ T(p1) ဆိုတာက p2, p3, ... , p8, p9, p2 ဆိုတဲ့ အစီအစဉ်အတိုင်း ကြည့်သွားရင် ၀ ကနေ ၁ ကို ပြောင်းသွားတဲ့ အရေ အတွက်ပါ။ ဒုတိယ အဆင့်မှာ (a) နဲ့ (b) ကအတူတူပါပဲ။ ဒါပေမယ့် (c) နဲ့ (d) ကတော့ အောက်မှာ ပြထားတဲ့ အတိုင်း ပြောင်းသွားပါတယ်။ (c') p2.p4.p8= 0 (d') p2.p6.p8= 0 ပထမ အဆင့် ကို ပုံသဏ္ဌာန်တစ်ခုရဲ့ အနားသတ်ပေါ်မှာရှိတဲ့ အစက်တိုင်းအတွက် စဉ်းစားပါမယ်။ အချက် (a) ကနေ (d) ထဲက တစ်ချက်ချက် မကိုက်တာနဲ့ အဲဒီ အစက်ကို မဖျက်တော့ ပါဘူး။ အချက်အားလုံး ကိုက်ညီရင် တော့ ဖျက်ဖို့ အတွက် မှတ်ထားလိုက် ပါမယ်။ ဒါပေမယ့် အဲဒီ အစက် ကို အနားသတ် ပေါ်မှာရှိတဲ့ အစက် အားလုံးကို စဉ်းစားလို့ မပြီးမချင်း တကယ် မဖျက်သေးပါဘူး။ အဲဒီလို နောက်ကျမှ ဖျက်တဲ့ အတွက် တစ်ခြား အစက် တွေကို စဉ်းစား နေတဲ့ အချိန်မှာ ပုံသဏ္ဌာန် ပြောင်းသွားတာကို ကာကွယ်နိုင်ပါတယ်။ ပထမ အဆင့် ကို အနားသတ်ပေါ်မှာရှိတဲ့ အစက် အားလုံးကို စဉ်းစာပြီးပြီဆိုတာနဲ့ ဖျက်ဖို့မှတ်ထားတဲ့ အစက် အားလုံးကို ဖျက်လိုက်ပါမယ်။ (အစက်ရဲ့ တန်ဖိုးကို သုည ပြောင်းလိုက်တာပါ။) ရလာတဲ့ ရလဒ် ပေါ်မှာ ဒုတိယ အဆင့် ကိုလဲ ပထမအဆင့် အတိုင်း ထပ်သုံးပါမယ်။ ဒီ အဆင့်နှစ်ဆင့်ကို အကြိမ်ကြိမ် အဖန်ဖန် ပြန်သုံးမှာ ဖြစ်ပြီး အကြိမ်တစ်ကြိမ်တိုင်းမှာ အောက်က လုပ်ငန်းလေးခုကို လုပ်ပါတယ်။ (၁) ပထမ အဆင့်ကို သုံးပြီး ဖျက်ရမယ့် အစက်တွေကို မှတ်ပါတယ်။ (၂) မှတ်ထားတဲ့ အစက်တွေကို ဖျက်ပါတယ်။ (၃) ဒုတိယ အဆင့်ကို သုံးပြီး ဖျက်ရမယ့် အစက်တွေကို မှတ်ပါတယ်။ (၄) မှတ်ထားတဲ့ အစက်တွေကို ဖျက်ပါတယ်။ ဒီအဆင့်တွေကို သုံးပြီး ပါးပါးသွားရင်း နောက်ဆုံး ဖျက်စရာ အစက် မကျန်တော့ဘူးဆိုရင် ရပ်လိုက်ပါမယ်။ ရလာတဲ့ ပုံက အရိုးဖြစ်ပါတယ်။ အချက် (c) p2.p4.p6 = 0 နဲ့ (d) p4.p6.p8 = 0 ကို တစ်ခါထဲ ပေါင်းပြီး (p4 = 0 or p6= 0) or (p2=0 and p8=0) လို့ တန်းစစ်လို့လဲရပါတယ်။ အဲဒီလိုပဲ (c') နဲ့ (d') ကိုလဲ (p2=0 or p8=0) or (p4=0 and p6=0) လို့ ပေါင်းစစ်လို့ ရပါတယ်။ Two Step Thinning အတွက်နမူနာ MATLAB ကုဒ်ကို ဒီမှာ (TSTeg.m) တွေ့နိုင်ပါတယ်။ ရှေ့မှာ ဖော်ပြခဲ့တဲ့ ကုဒ်တွေက နည်းတွေကိုနားလည်ဖို့ ရယ်၊ တစ်ခြား ပရိုဂရမ် ဘာသာတွေနဲ့ ပြန်ရေးဖို့ရယ် အတွက်တော့ အထောက် အကူ ဖြစ်မယ်ထင်ပါတယ်။ တကယ်တော့ MATLAB မှာ bwmorph ဆိုတဲ့ ဖန်ရှင်ကို သုံးလိုက်တာနဲ့ အရိုးကို တန်းရနိုင်ပါတယ်။ sk=bwmorph(bwImg,'skel',Inf); အဲဒီလိုခိုင်းလိုက်ရင် ထွက်လာတဲ့ ရလဒ် ကို အောက်မှာ ပြထားပါတယ်။ Reference: Rafael C. Gonzalez, Richard E. Woods, Steven L. Eddins, "Digital Image Processing Using MATLAB", Second Edition, Mc Graw Hill (Asia), 2011.
Friday, December 16, 2011
Geometric Template Matching in LabVIEW
NI ရဲ့ IMAQ Vision Concepts Manual ထဲမှာ geometric template matching ကို အောက်ပါ အတိုင်း ဖော်ပြထားပါတယ်။
Geometric matching က ကင်မရာ က ဖမ်းယူ ရရှိတဲ့ ပုံမှာ ကိုယ်ရှာ ဖို့ သတ်မှတ်ထားတဲ့ အရာ ဘယ်နားမှာ ရှိနေလဲ ဆိုတာ ရှာပေး ပေး ပါတယ်။ Geometric matching က ဘယ်လို ပုံသဏ္ဍာန် ဆိုတာ သတ်မှတ်ထားတဲ့ အချက်အလက် ပေါ် မူတည်ပြီး ပုံစံပြား ကို ရှာပါတယ်။
Geometric matching ကို သုံးဖို့ အတွက် ရှာလိုတဲ့ ပစ္စည်း ကို ကိုယ်စား ပြုတဲ့ ပုံစံပြား တစ်ခုကို ဖန်တီးရ ပါတယ်။ စက်ရဲ့ အမြင်အနေနဲ့ အသုံးချ တဲ့ အခါ ပုံရိပ် တစ်ခု ချင်းစီမှာ ပုံစံပြား နဲ့ ကိုက်ညီမှု ရှိ တဲ့ နေရာတွေမှာ ဘယ်လောက်ထိ ကိုက်ညီမှု ရှိလဲ ဆိုတာ အမှတ်တွေ ပေးပါတယ်။
Geometric matching က အလင်းအမှောင် ပြောင်းလဲခြင်း၊ ပုံဝါးနေခြင်း၊ ပုံရိပ် မကြည်လင်ခြင်း၊ တဝက်တပြက် ဖုံးကွယ်နေခြင်း၊ အနေအထား နဲ့ အရွယ်အစား မတူခြင်း တွေ ရှိနေရင် တောင် ရှာ လိုတဲ့ ပုံစံပြား ရှိတဲ့ နေရာတွေ ကို ရှာပေးနိုင်ပါတယ်။
LabVIEW ထဲက IMAQ Find CoordSys (Pattern) 2 အစရှိတဲ့ VI တွေက ပုံစံပြား ကို ရှာဖို့ သုံးနိုင်ပါတယ်။ ပုံစံပြား ကို အောက်မှာ ဖော်ပြထားတဲ့ အဆင့်တွေ အတိုင်း ဖန်တီး နိုင်ပါတယ်။
Template Editor ကို Start -> All Programs -> National Instruments -> Vision -> Template Editor မှာဖွင့်ပါ။
File menu->New Template... ကိုနှိပ်ပါ။
Geometric Matching Template (Edge Based) ကိုရွေးပြီး ဖန်တီးမယ့် ပုံစံပြား ပါတဲ့ ပုံရိပ် ကို သတ်မှတ်ပေးပါ။
Select Template Region ဆိုတဲ့ tab မှာ ပုံစံပြား ဖန်တီးမယ့် နေရာကို သတ်မှတ်ပါ။ ဥပမာ အားဖြင့် (200,300) ကနေ (232,332) ထိ mouse ကို ဖိဆွဲ ပြီး သတ်မှတ်နိုင်ပါတယ်။ ပြီးနောက် မှတ်ထားတဲ့ နေရာကို ကိုယ်လိုချင်တဲ့ နေရာ ရောက်အောင် ပြန်ရွေ့နိုင်ပါတယ်။
Define curves ဆိုတဲ့ tab မှာ ပုံစံပြား ရဲ့ အနားသတ် ပုံစံနဲ့ ပတ်သက် တဲ့ အချက်တွေ ကို သတ်မှတ်ပါ။ ဥပမာ အားဖြင့် Extraction mode ကို normal၊ Edge Threshold ကို 32၊ Edge Filter size ကို Fine၊ Minimum Length ကို 5၊ Row Search Step Size ကို 1 နဲ့ Column Search Step size ကို 1 အစရှိသဖြင့် သတ်မှတ် နိုင်ပါတယ်။ Customize Scoring နဲ့ Specify Match Options tab တွေကိုတော့ နဂို အတိုင်း ထားနိုင်ပါတယ်။
File -> Save Template... ကိုနှိပ်ပြီး ပုံစံပြား ကို သိမ်းပါ။
နမူနာ အနေနဲ့ ဖန်တီးထားတဲ့ VI တွေကို
Geometric Template Matching on GitHub
မှာ ကြည့်နိုင်ပါတယ်။ VI အဝင် တွေ အတွက် သတ်မှတ်ခြင်း တွေကို အောက်မှာ ပြထားပါတယ်။
Geometric Template Matching on GitHub
မှာ ကြည့်နိုင်ပါတယ်။ VI အဝင် တွေ အတွက် သတ်မှတ်ခြင်း တွေကို အောက်မှာ ပြထားပါတယ်။
Sunday, April 6, 2008
HDR in GIMP
HDR (High Dynamic Range) ပုံတွေမှာ လင်းတဲ့နေရာမှာ အရမ်းလင်းပြီး၊ မှောင်တဲ့နေရာမှာလဲ သိပ်မှောင်တော့ သူတို့ရဲ့ အလင်းအမှောင် ကွာခြားချက်က ကင်မရာကဖမ်းယူနိုင်တဲ့၊ စကရင်မှာဖော်ပြနိုင်တဲ့ range ထက်ပိုများသွားတာပါ။
အောက်က ပုံမှာ မီးအိမ် ရှိတဲ့ဘက်က အရမ်းလင်းပြီး၊ ယွန်းဘူးရဲ့ အရိပ် ဘက်ကမှောင်နေတော့ မမြင်ရပါဘူး။
အိတ်စပို့ရှာ ကိုတင်လိုက်ရင် ယွန်းဘူးဖက်က မြင်ရပေမယ့် မီးအိမ်ဘက်က ပိုလင်းသွားပါတယ်။
အိတ်စပို့ရှာ လျော့ရင်တော့ မီးအိမ်ဘက်က အဆင်ပြေသွားပြီး ယွန်းဘူးဘက်က အရမ်းမှောင်သွားပါတယ်။
အဲဒါကို ဖြေရှင်းဖို့ကတော့ exposure bracketing နည်းကိုသုံးမှာပါ။ ပုံမှန် အိတ်စပို့ရှာနဲ့ တစ်ပုံ၊ အိတ်စပို့ရှာ များတာ ( +2 EV လောက်) က တစ်ပုံ၊ အိတ်စပို့ရှာ နည်းတာ ( -2 EV လောက်) က တစ်ပုံ၊ သုံးပုံကို ရိုက်ဖို့လိုပါတယ်။ ရိုက်တဲ့ အခါ ပုံတစ်ပုံနဲ့ တစ်ပုံ နေရာရွေ့မသွားအောင် သုံးချောင်းထောက် သုံးနိုင်ရင် ကောင်းပါတယ်။ ပြီးရင်ဖိုးကပ် ပွိုင့် မပြောင်းအောင် မန်နူရယ်ဖိုးကပ် သုံးသင့်ပါတယ်။ Depth of Field မပြောင်းအောင်က တော့ Aperture ကို အသေထားပါ။ ပြီးရင် GIMP မှာ Exposure Blending Plug-in ကို ထည့်ဖို့ လိုပါတယ်။
http://turtle.as.arizona.edu/jdsmith/exposure-blend-tinyscheme.scm ကို ဒေါင်းလုပ်လုပ်နိုင်ပါတယ်။ GIMP 2.4.5 အတွက် C:\Program Files\GIMP-2.0\share\gimp\2.0\scriptsမှာ သွားပြီး အဲဒီဖိုင်ကိုထားပါ။ နေရာက ကိုယ် အင်စတောလုပ်ခဲ့တဲ့ နေရာပေါ်မူတည်ပြီး ကွဲပြားနိုင်ပါတယ်။ ပြီးရင် GIMP ကိုဖွင့် Xtns menu ထဲက Photo က Exposure Blend ... ကို နှိပ်ပါ။
အဲဒီမှာ ပုံသုံးပုံ ကိုထည့်ပါ။ ပုံတွေရှိတဲ့ folder ကို ခဏ ခဏ navigate မလုပ်ချင်ရင် ဘယ်ဘက်အောက်နားမှာ ရှိတဲ့ Add ဆိုတဲ့ ခလုပ်ကို နှိပ်ခြင်းအားဖြင့် နောက်ထပ်ပုံတွေကို အလွယ်တကူထည့်နိုင်ပါတယ်။
အဲဒီမှာ ဆက်တင် တချို့ကို စိတ်ကြိုက်ထားနိုင်ပါတယ်။ ပြီးရင် အိုကေ ကိုနှိပ်ပါ။ အဲဒါဆိုရင် Exposure Blend လုပ်ပြီးသား ပုံတစ်ပုံ ကို ရရှိပါပြီ။
ပေါင်းစပ်တဲ့ ပုံတွေက တစ်ပုံနဲ့ တစ်ပုံ တစ်ထပ်ထည်းမကျပဲ နေရာတွေ လွဲနေခဲ့မယ်ဆိုရင် Photoshop တို့၊ PhotoMatix တို့မှာ အလိုအလျောက် align လုပ်ပေးနိုင်ပေမယ့် GIMP မှာတော့ manual လုပ်ဖို့လိုပါတယ်။ ပုံရဲ့ Filters menu ထဲက Photo မှာ Align Exposure Mode ဆိုတဲ့ ကွန်မန်း တွေကို သုံးပြီး လင်းတဲ့အလွှာကိုချိန်တာ၊ မှောင်တဲ့အလွှာကိုချိန်တာ၊ ပြီးရင် align ချိန်တဲ့ difference mode ကို ပြန်ပိတ်တာလို့လုပ်နိုင်ပါတယ်။
နောက်တစ်ခုက လေယာ ဝင်းဒိုးကို သွားပြီးတော့လဲ dark layer, bright layer တွေရဲ့ opacity ပြင်တာတို့၊ layer mask တွေကို အသေးစိပ် ခြယ်သတာ တို့ကိုလဲ လုပ်နိုင်ပါသေးတယ်။
Reference:
http://turtle.as.arizona.edu/jdsmith/exposure_blend.php
အိတ်စပို့ရှာ လျော့ရင်တော့ မီးအိမ်ဘက်က အဆင်ပြေသွားပြီး ယွန်းဘူးဘက်က အရမ်းမှောင်သွားပါတယ်။
အဲဒါကို ဖြေရှင်းဖို့ကတော့ exposure bracketing နည်းကိုသုံးမှာပါ။ ပုံမှန် အိတ်စပို့ရှာနဲ့ တစ်ပုံ၊ အိတ်စပို့ရှာ များတာ ( +2 EV လောက်) က တစ်ပုံ၊ အိတ်စပို့ရှာ နည်းတာ ( -2 EV လောက်) က တစ်ပုံ၊ သုံးပုံကို ရိုက်ဖို့လိုပါတယ်။ ရိုက်တဲ့ အခါ ပုံတစ်ပုံနဲ့ တစ်ပုံ နေရာရွေ့မသွားအောင် သုံးချောင်းထောက် သုံးနိုင်ရင် ကောင်းပါတယ်။ ပြီးရင်ဖိုးကပ် ပွိုင့် မပြောင်းအောင် မန်နူရယ်ဖိုးကပ် သုံးသင့်ပါတယ်။ Depth of Field မပြောင်းအောင်က တော့ Aperture ကို အသေထားပါ။ ပြီးရင် GIMP မှာ Exposure Blending Plug-in ကို ထည့်ဖို့ လိုပါတယ်။
http://turtle.as.arizona.edu/jdsmith/exposure-blend-tinyscheme.scm ကို ဒေါင်းလုပ်လုပ်နိုင်ပါတယ်။ GIMP 2.4.5 အတွက် C:\Program Files\GIMP-2.0\share\gimp\2.0\scriptsမှာ သွားပြီး အဲဒီဖိုင်ကိုထားပါ။ နေရာက ကိုယ် အင်စတောလုပ်ခဲ့တဲ့ နေရာပေါ်မူတည်ပြီး ကွဲပြားနိုင်ပါတယ်။ ပြီးရင် GIMP ကိုဖွင့် Xtns menu ထဲက Photo က Exposure Blend ... ကို နှိပ်ပါ။
အဲဒီမှာ ပုံသုံးပုံ ကိုထည့်ပါ။ ပုံတွေရှိတဲ့ folder ကို ခဏ ခဏ navigate မလုပ်ချင်ရင် ဘယ်ဘက်အောက်နားမှာ ရှိတဲ့ Add ဆိုတဲ့ ခလုပ်ကို နှိပ်ခြင်းအားဖြင့် နောက်ထပ်ပုံတွေကို အလွယ်တကူထည့်နိုင်ပါတယ်။
အဲဒီမှာ ဆက်တင် တချို့ကို စိတ်ကြိုက်ထားနိုင်ပါတယ်။ ပြီးရင် အိုကေ ကိုနှိပ်ပါ။ အဲဒါဆိုရင် Exposure Blend လုပ်ပြီးသား ပုံတစ်ပုံ ကို ရရှိပါပြီ။
ပေါင်းစပ်တဲ့ ပုံတွေက တစ်ပုံနဲ့ တစ်ပုံ တစ်ထပ်ထည်းမကျပဲ နေရာတွေ လွဲနေခဲ့မယ်ဆိုရင် Photoshop တို့၊ PhotoMatix တို့မှာ အလိုအလျောက် align လုပ်ပေးနိုင်ပေမယ့် GIMP မှာတော့ manual လုပ်ဖို့လိုပါတယ်။ ပုံရဲ့ Filters menu ထဲက Photo မှာ Align Exposure Mode ဆိုတဲ့ ကွန်မန်း တွေကို သုံးပြီး လင်းတဲ့အလွှာကိုချိန်တာ၊ မှောင်တဲ့အလွှာကိုချိန်တာ၊ ပြီးရင် align ချိန်တဲ့ difference mode ကို ပြန်ပိတ်တာလို့လုပ်နိုင်ပါတယ်။
နောက်တစ်ခုက လေယာ ဝင်းဒိုးကို သွားပြီးတော့လဲ dark layer, bright layer တွေရဲ့ opacity ပြင်တာတို့၊ layer mask တွေကို အသေးစိပ် ခြယ်သတာ တို့ကိုလဲ လုပ်နိုင်ပါသေးတယ်။
Reference:
http://turtle.as.arizona.edu/jdsmith/exposure_blend.php
Tuesday, March 25, 2008
Velvia
Fujifilm ရဲ့ Velvia film ပုံစံမျိုး free software GIMP နဲ့ လုပ်ကြည့်ထားတာပါ။ အရောင် များများလွင်လွင် ထွက်အောင်ပါ။ Hue-Saturation tool ကို သုံးပြီး အရောင်တင်ရင်ရပေမယ့် ဒီနည်းက ပိုပြီး Velvia နဲ့ ပို နီးစပ်ပါတယ်။ နောက်တစ်ခုက အရောင်တွေကို Saturation သုံးပြီး အရမ်းတင်ရင် posterize ဖြစ်သွားတတ်ပေမယ့် ဒီနည်း နဲ့ဆို ပိုပြီး ကောင်းကောင်းတင်လို့ရပါတယ်။
ကိုယ်ပြင်မည့်ပုံကို File menu ရဲ့ open နဲ့ ဖွင့်ပါ။ ထို့နောက် Colors menu ရဲ့ Components မှ Channel mixer.. ကို ရွေးဖွင့်ပါ။
Output Channel မှာ Red ကို ရွေးပြီး အောက်က Red slider ရဲ့ တန်ဖိုးကို ၁၅၀ တင်ပါ။ အဲဒါ ကို ပြန် balance လုပ်ဖို့ Green, Blue sliders တွေရဲ့ တန်ဖိုးကို -၂၅ ပြန်လျှော့ပါ။ အဲဒီလိုပဲ Green နဲ့ Blue ကို လုပ်ပါ။
ပြီးရင် အိုကေ နှိပ်ပါ။ ထို့နောက် colors menu မှာ Levels ကိုရွေးပြီး input levels ရဲ့ ဘယ်ဘက် အောက်က အနက်ရောင် slider ကို မိမိ စိတ်ကြိုက် contrast ရသည်ထိ တင်ပါ။
ထိုအခါ ရွှန်းလဲ့ တောက်ပ လှပ သည့် Velvia စတိုင် ပုံတစ်ပုံ ရရှိပါလိမ့်မည်။ အောက်တွင် မူရင်းနှင့် ယှဉ်ပြထားပါသည်။
Before
After
Reference:
http://photoshoptutorials.ws/photoshop-tutorials/photo-effects/velvia.html
Output Channel မှာ Red ကို ရွေးပြီး အောက်က Red slider ရဲ့ တန်ဖိုးကို ၁၅၀ တင်ပါ။ အဲဒါ ကို ပြန် balance လုပ်ဖို့ Green, Blue sliders တွေရဲ့ တန်ဖိုးကို -၂၅ ပြန်လျှော့ပါ။ အဲဒီလိုပဲ Green နဲ့ Blue ကို လုပ်ပါ။
Output Channel: Red
Red: +150
Green: -25
Blue: -25
Output Channel: Green
Red: -25
Green: +150
Blue: -25
Output Channel: Blue
Red: -25
Green: -25
Blue: +150
ပြီးရင် အိုကေ နှိပ်ပါ။ ထို့နောက် colors menu မှာ Levels ကိုရွေးပြီး input levels ရဲ့ ဘယ်ဘက် အောက်က အနက်ရောင် slider ကို မိမိ စိတ်ကြိုက် contrast ရသည်ထိ တင်ပါ။
ထိုအခါ ရွှန်းလဲ့ တောက်ပ လှပ သည့် Velvia စတိုင် ပုံတစ်ပုံ ရရှိပါလိမ့်မည်။ အောက်တွင် မူရင်းနှင့် ယှဉ်ပြထားပါသည်။Before
After
Reference:
http://photoshoptutorials.ws/photoshop-tutorials/photo-effects/velvia.html
Lomography
Lomo lens တွေနဲ့ ရိုက်ထားတဲ့ ပုံစံ မျိုး GIMP နဲ့ လုပ်ကြည့်ထားတာပါ။ Lomography အကြောင်းကိုတော့ ဒီမှာ ဖတ်ကြည့်လို့ရပါတယ်။ Lomo ပုံတွေမှာ သိသာထင်ရှားတဲ့ vignette (lens ကြောင့်ဖြစ်တဲ့ အနားမှောင်တွေ) ရှိပါတယ်။ ပထမ ဆုံး အဲဒါကို အရင်ထည့်ပါမယ်။ GIMP tool box ထဲက စက်ဝိုင်းပုံ selection tool ကို ရွေးပြီး ပုံ အပြည့် select မှတ်ပါ။ ထို့နောက် ပုံရဲ့ Select Menu က Invert ကိုရွေးပါ။

နောက် Layer Menu မှ New layer (or) Ctrl+Shift+N ကို ရွေးပါ။ ထို့နောက် Layer နာမည်ကို Vignette လို့ပေးပြီး၊ Transparency ရွေးပြီး အိုကေ နှိပ်ပါ။

အောက်က ပုံမှာ ပြထားတဲ့ အတိုင်း Foreground color အမည်းနဲ့ Background color အဖြူ ကိုရွေးပါ။ Dialog menu ကနေ layer ကို ရွေးပြီး layer dialog ကို သွားပါ။ "Vignette" layer ကို select လုပ်ထားဖို့လိုပါတယ်။ ပြီးတော့ Edit menu ကနေ Fill with FG color ကိုရွေးပြီး select မှတ်ထားတဲ့နေရာတွေမှာ အမည်း ဖြည့်ပါတယ်။ ပြီးရင် select menu ကနေ None ကိုရွေးပြီး selection ကို ဖြုတ်ပါမယ်။

ထို့နောက် Filter menu က Blur ကနေ Gaussian Blur ကိုဖွင့်ပါ။ ပုံမှာ ပြထားတဲ့ တန်ဖိုး ၁၅၀ ရွေး ( ဘလား radius ကို ပုံရဲ့ လေးပုံ တစ်ပုံလောက်) ပြီး အိုကေ နှိပ်ပါ။

ထို့နောက် Layer dialog ကိုသွားပြီး Vignette layer ရဲ့ Opacity ကို ၇၅ ရာနှုန်းလောက်ထားပါ။ အမှန်တော့ တန်ဖိုးတွေက ကိုယ့်အကြိုက်လိုက်ပြီး စိတ်ကြိုက်ထားလို့ရပါတယ်။

ထိုနောက် Background layer ကို select မှတ်ပါ။ Dialog menu က Channels ကို ရွေးပြီး Channels dialog ကို ဖွင့်ပါ။ ထိုနောက် Red channel တစ်ခုထဲကို ရွေးမှတ်ပါ။

ထို့နောက် Color menu မှ Brightness-Contrast ကို ရွေးပြီး Contrast ကို ၅၀ ခန့် တင်လျှင် ကောင်းပါသည်။

ထိုနည်းတူ Green channel ကိုလည်း contrast ၅၀ ခန့် တင်ပါ။ ထိုအခါ lomo စတိုင် ဓာတ်ပုံ တစ်ပုံ ရရှိပါမယ်။ အောက်မှာ မူရင်းပုံ နဲ့ လိုမိုပုံ ကို ယှဉ်ပြထားပါတယ်။
Before

After

Reference:
http://photoshoptutorials.ws/photoshop-tutorials/photo-effects/lomography.html

နောက် Layer Menu မှ New layer (or) Ctrl+Shift+N ကို ရွေးပါ။ ထို့နောက် Layer နာမည်ကို Vignette လို့ပေးပြီး၊ Transparency ရွေးပြီး အိုကေ နှိပ်ပါ။

အောက်က ပုံမှာ ပြထားတဲ့ အတိုင်း Foreground color အမည်းနဲ့ Background color အဖြူ ကိုရွေးပါ။ Dialog menu ကနေ layer ကို ရွေးပြီး layer dialog ကို သွားပါ။ "Vignette" layer ကို select လုပ်ထားဖို့လိုပါတယ်။ ပြီးတော့ Edit menu ကနေ Fill with FG color ကိုရွေးပြီး select မှတ်ထားတဲ့နေရာတွေမှာ အမည်း ဖြည့်ပါတယ်။ ပြီးရင် select menu ကနေ None ကိုရွေးပြီး selection ကို ဖြုတ်ပါမယ်။

ထို့နောက် Filter menu က Blur ကနေ Gaussian Blur ကိုဖွင့်ပါ။ ပုံမှာ ပြထားတဲ့ တန်ဖိုး ၁၅၀ ရွေး ( ဘလား radius ကို ပုံရဲ့ လေးပုံ တစ်ပုံလောက်) ပြီး အိုကေ နှိပ်ပါ။

ထို့နောက် Layer dialog ကိုသွားပြီး Vignette layer ရဲ့ Opacity ကို ၇၅ ရာနှုန်းလောက်ထားပါ။ အမှန်တော့ တန်ဖိုးတွေက ကိုယ့်အကြိုက်လိုက်ပြီး စိတ်ကြိုက်ထားလို့ရပါတယ်။

ထိုနောက် Background layer ကို select မှတ်ပါ။ Dialog menu က Channels ကို ရွေးပြီး Channels dialog ကို ဖွင့်ပါ။ ထိုနောက် Red channel တစ်ခုထဲကို ရွေးမှတ်ပါ။

ထို့နောက် Color menu မှ Brightness-Contrast ကို ရွေးပြီး Contrast ကို ၅၀ ခန့် တင်လျှင် ကောင်းပါသည်။

ထိုနည်းတူ Green channel ကိုလည်း contrast ၅၀ ခန့် တင်ပါ။ ထိုအခါ lomo စတိုင် ဓာတ်ပုံ တစ်ပုံ ရရှိပါမယ်။ အောက်မှာ မူရင်းပုံ နဲ့ လိုမိုပုံ ကို ယှဉ်ပြထားပါတယ်။
Before

After

Reference:
http://photoshoptutorials.ws/photoshop-tutorials/photo-effects/lomography.html
Subscribe to:
Posts (Atom)











