যখন তাদের প্রান্তগুলি একে অপরকে স্পর্শ করে তখন আমি কীভাবে স্বতন্ত্র জিনিসগুলি সনাক্ত করব?


21

আমার ক্যামেরা থেকে পুনরুদ্ধার করা সমস্ত চিত্র খুঁজে পাওয়া দরকার। তাই আমি প্রান্তগুলি খুঁজে পেতে এবং তারপরে সংক্ষিপ্তসারগুলি খুঁজতে প্রথমে ক্যানি এজ ডিটেক্টর ব্যবহার করি। বেশ সহজ.

যাইহোক, আমার রূপগুলি "মার্জ" হয়ে যায়। উদাহরণস্বরূপ, নীচের চিত্রটিতে, আমার কাছে স্পষ্টভাবে 4 টি পৃথক বস্তু রয়েছে। প্রান্তগুলি কিছু পয়েন্টে কিছুটা হলেও স্পর্শ করছে, তাই আমি চারটি পৃথক পরিবর্তে একটি বড় কনট্যুর পেয়েছি। আমি প্রান্তিককরণ, ক্ষয়করণ, রূপচিকিত্সার ক্রিয়াকলাপ এবং অনুরূপ জিনিসগুলির চারদিকে পরিবর্তন করার চেষ্টা করেছি তবে কিনারা কিছুটা স্পর্শ করে। নীচের চিত্রের মতো চিত্রগুলিতে আলাদা কনট্যুর কীভাবে পাবেন সে সম্পর্কে কারও কি কোনও পরামর্শ আছে? (নীচের চিত্রটি অবশ্যই একটি উদাহরণ, আমার আসল চিত্রগুলি আরও জটিল, তবে একই বেসিক সমস্যাটি রয়েছে)।

এখানে চিত্র বর্ণনা লিখুন


ওয়াটারশেড বিভাজন কাজ করতে পারে।
sm176357

সুতরাং,
যোগাযোগগুলি

উত্তর:


11

বিভিন্ন উপাদান সনাক্ত করা হচ্ছে:

আপনি যদি বিভিন্ন উপাদান সনাক্ত করার চেষ্টা করছেন, তবে সংশ্লেষ সনাক্তকরণের চেয়ে এগুলি করার জন্য সম্ভবত অন্যান্য পদ্ধতি রয়েছে। এখানে গাণিতিকের একটি উদাহরণ। প্রসারণের পরে একটি ক্ষয় সনাক্তকরণের আগে দ্বিতীয় উপাদানটির ফাঁক বন্ধ করতে ব্যবহৃত হয় (যদি আপনি এটি না করেন তবে এটি এটি সনাক্ত করবে না)।

img = Binarize@Import["http://i.stack.imgur.com/yqDyu.png"];
Colorize[MorphologicalComponents[Dilation[Erosion[img,1],1]]]

নীচের বাম দিকে চিত্রটি অপূর্ণ বস্তু সনাক্তকরণ (ফাঁক বন্ধ না করে) এবং ডানদিকে দেখায় সঠিক সনাক্তকরণ (উপরের কোডটি চালানো) দেখায়।

এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন

বিভিন্ন রূপটি সনাক্ত করা:

তবে, যদি আপনি সত্যিই কেবল রূপকে আলাদা করতে চান তবে এখানে একটি উদাহরণ। ক্ষরণ এবং প্রসারণটি ফাঁক বন্ধ করতে পূর্বের মতো সঞ্চালিত হয় এবং ফলস্বরূপ চিত্রটি একটি ক্যানি এজ ডিটেক্টর দিয়ে চালানো হয়। আমি ডিফল্ট বিকল্পগুলি স্পষ্ট করে দিয়েছি, যাতে আপনি কী ব্যবহার করছেন তা দেখতে পান।

img2 = EdgeDetect[Dilation[Erosion[img, 1], 1], Method -> "Canny"]

এটি আপনাকে অভ্যন্তরীণ এবং বাইরের প্রান্ত উভয়ই দেবে (নীচে বাম দিকে চিত্র দেখুন), যেহেতু পিক্সেলের প্রস্থটি চারপাশের 1 এর চেয়ে বেশি। পারফরম্যান্স হ্রাস হওয়ার সাথে সাথে এটি আরও পাতলা করার চেষ্টা করার মতো ভাগ্য আমি পাইনি (আপনার অন্যান্য চিত্রগুলির জন্য আলাদা হতে পারে)। অভ্যন্তরীণ রূপগুলি আপনি যা চান তা হ'ল এবং বাহ্যিক কনট্যুরটি 4 টি উপাদানগুলির সম্মিলিত কনট্যুর। এখন আমাদের যা করতে হবে তা হ'ল বাইরেরতমটি দিয়ে:

SelectComponents[img2, "EnclosingComponentCount", # > 0 &]

যা আপনাকে কেবল অভ্যন্তরীণ রূপগুলি দেয় (নীচে ডানদিকে দেখুন)। অন্য কথায় এটি কমপক্ষে অন্য একটি কনট্যুর দ্বারা আবদ্ধ এমন কনট্যুরগুলি কেবল চয়ন করে, যা স্বয়ংক্রিয়ভাবে বাইরেরতমটিকে অযোগ্য করে তোলে। আমি ওপেনসিভিতে এই আদেশগুলি / অপারেশনগুলির সমতুল্য জানি না।

এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন

নোট করুন যে চিত্রের আপাত বিরতিগুলি ছোট আকারে জেপিগ সংরক্ষণ করার কারণে হয়েছে। এটি আমার পর্দায় সেভাবে দেখায় না।


2

ক্ষয়ের মতো রূপক ফিল্টার সহ আপনার চিত্রগুলি প্রাক-প্রক্রিয়াজাতকরণের চেষ্টা করুন । এটি স্পর্শকারী রূপগুলি পৃথক করার অনুমতি দেবে। আপনার রূপগুলি শনাক্ত করার পরে, আপনি জালগুলি সম্পূর্ণ করতে একটি ডিলেশন অপারেশন প্রয়োগ করতে পারেন ।


আমি চেষ্টা করেছিলাম, কিন্তু ফলাফলগুলি কোনও উন্নতি দেখায় নি।

1
আপনি একটি বাস্তব উদাহরণ চিত্র প্রদর্শন করতে পারেন?

2

এটি আপনার প্রশ্নের উত্তর নয়, তবে কনট্যুর বিশ্লেষণ ত্রুটি-প্রবণ। আপনি এটি সম্পর্কে বেশি কিছু করতে পারবেন না এবং এটি কেবল খুব সাধারণ দৃশ্যে কাজ করে।

এটি ব্যবহার করতে আপনার যদি সমস্যা হয় তবে আপনার সম্পূর্ণ ভিন্ন অ্যালগরিদম সন্ধান করা উচিত। জিনিসগুলি সমাধান করার আরও জটিল এবং আরও শক্তিশালী উপায় রয়েছে তবে এটি আপনি কী অর্জন করতে চান তার উপর নির্ভর করে (অবজেক্ট সনাক্তকরণ, ট্র্যাকিং ইত্যাদি ...)


ধন্যবাদ. আমার প্রোগ্রামটি হ্যান্ড শনাক্তকরণের জন্য ব্যবহৃত হয়, তাই আমি মনে করি এটির বিষয়টি সনাক্তকরণের সাথে খুব মিল similar আপনি আরও জটিল এবং শক্তিশালী অ্যালগরিদমের জন্য কোনও পরামর্শ দিয়েছেন? হর বৈশিষ্ট্যগুলি, এসআরএফ এবং অনুরূপ মেশিন লার্নিং অ্যালগরিদমগুলি আমি কিছু করতে পারি না।

আপনি কি এই সংস্থানগুলি তাকান? paginas.fe.up.pt/~hgc2011 এগুলি মূলত ডাটাবেস / ফলাফল, তবে আমি আশা করি আপনি এখানে কিছু ভাল কাগজপত্র পেতে সক্ষম হবেন।

0

কনট্যুরগুলি অগত্যা খোলা বিবেচনা নয় যে আপনি তাদের সনাক্ত করতে ক্যান ব্যবহার করেছেন। ক্যানির সমস্যাগুলি এখানে ইতিমধ্যে বিচ্ছিন্ন হয়ে গেছেআলোচনা মিতব্যয়ী এ আপনার মৌলিক ধারণা এখনও ক্লোজিং এবং প্রসারণ মত অপারেশন হয় মূল্যায়ন বদ্ধ contours যাও মিতব্যয়ী উপরে প্রয়োজন যে নেই দেয়।

এটাও উপর নির্ভর করে আমরা খুঁজছেন হয়েছে কিনা সেটি contours এবং বা segmentations (মিতব্যয়ী মত পদ্ধতি বনাম Graphcuts )। সুতরাং আমার ধারণা দৃ .় সমাধান অনুসন্ধান আপনার চূড়ান্ত প্রয়োগের উপর নির্ভর করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.