সেরা "বালতি-ফিল" অ্যালগরিদম কী?


16

আমি ইমেজ প্রসেসিংয়ে বেশ নতুন, এবং আমি বর্তমানে একটি পেইন্টের মতো অ্যাপ্লিকেশন নিয়ে কাজ করছি যা একটি বালতি-ফিল পূরণ করবে। তবে, বালতি-ফিলের জন্য সেরা অ্যালগরিদম কী তা আমার কোনও ধারণা নেই।

আমি এই সাইটটি থেকে পাওয়া একটি উদাহরণ আমি প্রয়োগ করেছি , তবে, এটি ইতিমধ্যে লুপ সমস্যার মধ্যে চলে গেছে যখন কোনও ব্যবহারকারী ইতিমধ্যে একই রঙে বালতি ভরা এমন কোনও জায়গায় বালতি-পূরণ করার চেষ্টা করেছিল।

আমি বর্তমানে বাম, ডান, উপরে এবং তারপরে নীচে ভরাট করে সমস্যাটি ঘিরে কাজ করছি; যাইহোক, আমি এটি তৈরি করেছি যাতে একবারে পিক্সেলটি বামে পূর্ণ হয়ে যায়, এটি ডানদিকে পূরণ করতে পারে না, যার অর্থ আকারগুলি যেমন:

উদাহরণ

যদি বালতি সরঞ্জামটি লাল বিন্দুতে ব্যবহার করা হয় তবে তা সঠিকভাবে পূরণ করা যাবে না।

অতএব, আমি আশা করছি যে কেউ এই অ্যালগরিদম বা একটি লিঙ্ক সম্পর্কে জানেন যা এই সমস্ত সমস্যার সমাধান করবে।

অতিরিক্ত তথ্য: এটি পেইন্ট সরঞ্জাম হিসাবে জাভাস্ক্রিপ্ট ব্যবহার করে প্রয়োগ করা হবে। এটি ক্যানভাস উপাদানটি ব্যবহার করে অনলাইনে ব্যবহৃত হবে।


এই ভেক্টর বা বিটম্যাপ ভিত্তিক? আমি ছবিটি দ্বারা বিটম্যাপটি ধরে নিচ্ছি, তবে কেবল নিশ্চিত করছি ..
ডেমিয়ান ব্রেচট

1
আমি মনে করি আপনি কিছু ভুলভাবে প্রয়োগ করেছেন। আমি দস্তাবেজটি স্কিম করেছিলাম এবং চিত্রের উদাহরণ অনুসারে, এটি উপরের মত চিত্রগুলি পূরণ করা উচিত। আপনি কি তার কোডটি অনুলিপি করে পেস্ট করেছেন, নাকি আপনি এটি আবার লিখেছেন?
আরএলএইচ

গ্রাফ ট্র্যাভারসাল চিন্তা করুন।
Bwmat

@ আরআরএইচ: আমি তার কোডটি আমার সেট আপটি দিয়ে কাজ করার জন্য কয়েকটি পরিবর্তন করে অনুলিপি করে আটকালাম।
ইভান

@ ইভান: আপনার "অসীম লুপ" সমস্যার সমাধান হওয়ার আগে কোনও নতুন আলগো অনুসন্ধান শুরু করবেন না। এমনকি যদি কোনও বিদ্যমান বাস্তবায়নের জন্য এটিও ঠিক না করা যায়, আপনি যখন পুরোপুরি স্ক্র্যাচ থেকে পুনরায় লিখতে যাবেন তখন আপনি অবশ্যই আরও অনেক সমস্যার মধ্যে চলে যাবেন।
ডক ব্রাউন

উত্তর:


21

মনে হচ্ছে আপনি আসলে যা বন্যা ভরাট অ্যালগরিদম বলেছিলেন তা সন্ধান করছেন। এজন্য আপনি এর জন্য অনেকগুলি উদাহরণ খুঁজে পেতে পারেন নি। অ্যালগরিদমের জন্য উইকিপিডিয়া পৃষ্ঠায় তালিকাভুক্ত বেশ কয়েকটি বন্যার ভরাট পদ্ধতি রয়েছে । আমি পুনরাবৃত্তিযোগ্য, 'সারিযুক্ত' পদ্ধতিগুলির মধ্যে একটির পক্ষে অত্যন্ত সুপারিশ করি।


I highly recommend one of the non-recursive, 'queued' methods.- কেন আপনি ব্যাখ্যা করতে পারেন?
এলফায়ার

1
@ এলফায়েয়ার যতবারই কোনও ফাংশন বলা হয় (বলুন "এক্স ()" এর "ওয়াই ()" তে কল রয়েছে, উত্পন্ন ফাংশন ("এক্স ()") থেকে প্যারামিটার এবং মেমরির অবস্থান স্ট্যাকের মধ্যে সঞ্চয় করা হয়। সুতরাং, আপনি যদি একটি বৃহত এবং জটিল স্থান পূরণ করে থাকেন তবে প্রচুর পুনরাবৃত্ত ফাংশন কল হবে। আপনার সংকলক এবং ভাষার উপর নির্ভর করে এর ফলে স্ট্যাক ওভারফ্লো বা অতিরিক্ত মেমরির খরচ হতে পারে।
বক্সার্টেন্যান্ট

-1

আমি বর্তমানে একই জিনিস করছি। যাইহোক, আমি যখন আপনি চিহ্নিত ইস্যুটিতে দৌড়েছি, তখন টুলটি আপনি রঙ করার চেষ্টা করছেন একই রঙের একটি অঞ্চলে ক্লিক করা হলে কেবল ফাংশনটি শেষ করার বিকল্পটি বেছে নিয়েছি (এটি এমএস-পেইন্টের আচরণ হিসাবেও মনে হয়) ।

কিছু প্রোগ্রামিং অভিজ্ঞতা আছে এমন কারও জন্য কাতযুক্ত পদ্ধতিটি অত্যন্ত স্বজ্ঞাত হওয়া উচিত।

যদি আপনার পেইন্টের মতো একই রঙের দাগের আশেপাশের অঞ্চলটিকে চিত্রিত করা উদ্বেগজনক হয় তবে আপনি যা করতে পারেন তা:

  • পটভূমির রঙের জন্য পরীক্ষা করুন।
  • আপনি যে ক্লিক করেছেন একই রঙের স্পটের প্রান্তটি অনুসন্ধান করুন।
  • আশেপাশের পয়েন্টগুলি ঘটনাস্থলে সারি করুন।
  • এটি ব্যবহার করে স্বাভাবিক নির্বাহের সাথে এগিয়ে যান (এই ক্ষেত্রে) সাদা-বিন্দু পূর্ণ কাত que

আপনি যদি চান তবে আপনি আমার (বেশ বিব্রতকর) কোডটি এখানে দেখতে পারেন

এটি দ্রুত হওয়া থেকে অনেক দূরে তবে এটি দুর্দান্ত কাজ করে ...


ডাউনভোটস কেন? :( আমি জানি পদ্ধতিটি বিশেষত "দ্রুত" নয়, তবে এটি কার্যকর হয় এবং প্রস্তাবিত সমাধানটিও করে :(
জুয়ান পাবলো আলভারেজ আলফারো

1
এই পোস্টটি পড়ার চেয়ে শক্ত (পাঠ্যের প্রাচীর)। আপনি এটিকে আরও ভাল আকারে সম্পাদনা করতে আপত্তি করবেন ?
gnat

2
সিরিয়াসলি? জনগণের ভোট পড়েছে বলে কি পড়া শক্ত ছিল? কেন সম্পাদনা করবেন না? বিষয়বস্তু সমস্যাযুক্ত এমন নয়।
l46kok

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