চতুর নির্বাচনের জন্য চিত্র প্রক্রিয়াকরণ পদ্ধতি


11

আমার কাছে একটি 3D বাইনারি চিত্র এবং নীচে পছন্দসই আউটপুট হিসাবে একটি ইনপুট রয়েছে :

ইনপুট:

ইনপুট

পছন্দসই আউটপুট:

আউটপুট

উপরের পছন্দসই আউটপুটটির মতো, কেবলমাত্র চটকদার অবজেক্ট (গুলি) থাকতে পারলে আমার কোন চিত্র প্রক্রিয়াকরণের পদ্ধতিগুলি সন্ধান করা উচিত?


3 ডি বাইনারি চিত্র বলতে কী বোঝ ? আপনি সহজেই চিত্রটি পৃথক অংশে ভাগ করতে পারেন?
bjoernz

থ্রিডি দ্বারা, মানে এটি একটি টমোগ্রাফিক চিত্র।
কার্ল

1
আপনি কি ব্যাখ্যা করতে পারেন spikyবস্তু কি ? এটাকে আসলে কি স্পিকি বলে? স্পিকি অবজেক্টগুলিকে চিহ্নিত করার মূল বৈশিষ্ট্যগুলি কী কী?
দীপন মেহতা

এই ক্ষেত্রে একটি চটকদার বস্তু একটি 3D অঞ্চল যা মসৃণ নয় এবং এই কাঁটাগুলি তাদের সমস্ত আকারে রয়েছে।
কার্ল 10

উত্তর:


19

আপনার "চটকদার বস্তু" এর সীমানায় আরও কোণা রয়েছে, তাই এর জন্য একটি কোণ সনাক্তকারীকে টিউন করার জন্য একটি পদ্ধতিকে দেখা যায় ।

উদাহরণস্বরূপ, আমি একটি দূরত্ব-রূপান্তরিত চিত্রের কাঠামো টেনসরের (নীচে ম্যাথেমেটিক কোড) নির্ধারক গণনা করেছি:

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

হিস্টেরিসিসের সাথে বাইনারি করার ফলে এই চিত্রটি পাওয়া যায়, যা আপনার পছন্দের বিভাজন অ্যালগরিদমের জন্য একটি ভাল সূচনা পয়েন্ট হওয়া উচিত:

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

গাণিতিক কোড ( srcআপনার পোস্ট করা উত্স চিত্র)

প্রথমে, আমি ইনপুট চিত্রের একটি দূরত্বের রূপান্তর গণনা করি। এটি পুরো অবজেক্টের অঞ্চলে (কেবল সীমানার পরিবর্তে) বিপরীতে সৃষ্টি করে, তাই পুরো বস্তুটি সনাক্ত করা যায়।

dist = ImageData[DistanceTransform[src]];

পরবর্তী আমি কাঠামো টেনসারের উপাদানগুলি প্রস্তুত করি । গাউসি ডেরিভেটিভগুলির জন্য ফিল্টার আকার যদি 5, উইন্ডোর আকার 20 হয়।

gx = GaussianFilter[dist, 5, {1, 0}];
gy = GaussianFilter[dist, 5, {0, 1}];
gx2 = GaussianFilter[gx^2, 20];
gxy = GaussianFilter[gx*gy, 20];
gy2 = GaussianFilter[gy^2, 20];   

প্রতিটি পিক্সেল এ কোণার ফিল্টার গণনা করতে, আমি কেবল এগুলি কাঠামোর টেন্সরের প্রতীকী নির্ধারকটিতে প্লাগ করি:

corners = Det[{{dx2, dxy}, {dxy, dy2}}] /. {dx2 -> gx2, dxy -> gxy, dy2 -> gy2};

যা মূলত:

corners = gx2 * gy2 - gxy * gxy;

এটিকে কোনও চিত্রে রূপান্তর করা এবং এটি ০.১ রেঞ্জের মধ্যে স্কেল করা উপরের কোণার সনাক্তকারী চিত্রটি দেয়।

অবশেষে, ডান প্রান্তিকের সাথে এটি বাইনারি করা চূড়ান্ত, বাইনারি চিত্র দেয়:

MorphologicalBinarize[Image[corners], {0.025, 0.1}]

খুব শীতল উত্তর! =)
ফোনন

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