विभाजन कार्यों में आप दोनों
- अच्छा मार्कर अगर; और
- ब्याज
की वस्तु के आसपास मजबूत किनारों तो यह सीधे एक वाटरशेड द्वारा हल किया जाता है रूपांतरण। समस्या, ज़ाहिर है, इन मार्करों को प्राप्त कर रही है, साथ ही प्रासंगिक किनारों को आवश्यकतानुसार बढ़ा रही है। इन्हें प्राप्त करने में समस्या-विशिष्ट ज्ञान शामिल हो सकता है, जो कि आपकी समस्या के लिए नहीं है।
फिर भी, कुछ सामान्य विधियां उपयोगी हो सकती हैं। उदाहरण के लिए, गणितीय मॉर्फोलॉजी से जुड़े ऑपरेटरों फ्लैट क्षेत्र को मर्ज करने और विस्तार करने के तरीके के रूप में कार्य करते हैं। इस प्रकार, शायद यह हमें समस्या के लिए अपेक्षाकृत अच्छे मार्कर दे सकता है। निम्नलिखित छवि में मूल छवि (बाएं छवि) के ग्रेस्केल संस्करण में खोलने (एक प्रकार का कनेक्टेड ऑपरेटर) द्वारा एक मोर्फोलॉजिकल पुनर्निर्माण किया गया था, और शेष क्षेत्रीय अधिकतम दाईं ओर दिखाया गया है।


अब, हम ऊपर बाईं छवि की रूपात्मक ढाल प्राप्त कर सकते हैं। हम अधिक चिकनी समोच्च प्राप्त करने के लिए उपरोक्त दाएं छवि में एक छोटी डिस्क के साथ छेद भरने और एक फैलाव भी कर सकते हैं - यह हमारी मार्कर छवि को परिभाषित करता है। फिर, लागू करने के एक वाटरशेड हमारे मार्कर छवि का उपयोग कर, और उसके बाद का विस्तार ढाल छवि में रूपांतरण वाटरशेड लाइनों (इरोड या फैलने, आप इसे कैसे देखते हैं पर निर्भर करता है), हम निम्नलिखित छवि प्राप्त:

मैं संदेह है कि आप आसानी से बहुत बड़े और बहुत छोटे क्षेत्रों को त्याग सकते हैं। फिर, यदि आपके पास पंजे के लिए कुछ हद तक अपेक्षित आकार हैं, साथ ही हथेली के लिए, आप अप्रासंगिक क्षेत्रों को त्याग सकते हैं। इस बिंदु पर यह क्षेत्रों विस्फारित एक एकल घटक फार्म और मूल छवि में जिसके परिणामस्वरूप समोच्च को दिखाने के लिए की केवल एक मामला है: हर कदम के प्रदर्शन के लिए

नमूना कोड (प्रासंगिक कदम भी में दिखाया जाता है
f = Import["http://imageshack.us/a/img407/4636/p1060993g.jpg"]
g = ColorConvert[f, "Grayscale"] (* g = rgb2gray(f); *)
(* First image shown: *)
geo = GeodesicOpening[g, DiskMatrix[5]] (* geo = imreconstruct(imerode(g, ... *)
(* strel('disk', 6)), g); *)
(* Second image shown: *)
marker = MaxDetect[geo] (* marker = imregionalmax(geo); *)
(* Watershed on gradient with markers. *)
mgrad = ImageSubtract[Dilation[geo, 1], Erosion[geo, 1]]; (* mgrad = ... *)
(* imdilate(geo,strel('square',3)) - imerode(geo,strel('square',3)); *)
ws = Image[ (* ws = watershed(imimposemin(mgrad, bwmorph(imfill(... *)
WatershedComponents[mgrad, (* imregionalmax(geo),'holes'),'dilate')))); *)
Dilation[FillingTransform[marker], DiskMatrix[1]]]]
(* Third image shown: *)
wsthick = Erosion[ws // ImageAdjust, DiskMatrix[5]]
(* Connected component selection based on some supposed sizes. *)
ccs = SelectComponents[wsthick, "Count", 1000 < # < 3000 || 6000 < # < 10000 &]
(* Final image (thick border on binarized filled dilated ccs) *)
res = ImageAdd[f, Dilation[MorphologicalPerimeter[FillingTransform[
MorphologicalPerimeter[Dilation[ccs, DiskMatrix[9]]]]], 2]]
समस्या आपके विचार से कहीं अधिक कठिन है। यह मदद कर सकता है यदि आप उस सीमा के आगे उपयोग पर विस्तार करते हैं, यानी आपको किस परिशुद्धता की आवश्यकता है? यदि आप बस पगमार्क का पता लगाना चाहते हैं, या इसकी दिशा जानना चाहते हैं, तो एक सटीक सीमा अनावश्यक है। –
आप बर्बाद हो गए हैं। : - (..... यह एक बेहद मुश्किल छवि प्रसंस्करण कार्य है। – Shai
@RomanShapovalov मुझे आपको बताना है कि विशेष रूप से मुझे सीमाओं को चिह्नित करने और अप्रासंगिक क्षेत्र को त्यागने की आवश्यकता क्यों है। मुझे पगमार्क का विश्लेषण करने और कुछ चयनित विशेषताओं के आधार पर आवश्यकता है पैड क्षेत्र, पैर की अंगुली क्षेत्र, पैर की अंगुली 2 और 3, पगमार्क लंबाई, चौड़ाई, आदि के बीच कोण और फिर प्रशिक्षण सेट के साथ विश्लेषण छवि की तुलना करने के बाद मैं बाघ के पगमार्क को अलग करने में सक्षम होना चाहिए। – Suvidha