এই পোস্টে আমরা ফ্লাড ফিল অ্যালগরিদম এবং বাউন্ডারি ফিল অ্যালগরিদমের পার্থক্য বুঝব। এগুলো এলিয়া-ফিলিং অ্যালগরিদম (area-filling algorithms), এবং এগুলো একটি র্যান্ডম পিক্সেলের রিজনের অরিজিনাল কালার আছে কিনা সেটি বেস করে ডিফারেনশিয়েট করা যায়।
ফ্লাড-ফিল অ্যালগরিদম (Flood-fill algorithm)
- এটিকে সিড ফিল অ্যালগরিদম (seed fill algorithm) ও বলা হয়।
- এটি একটি মাল্টি-ডাইমেনশনাল অ্যারে کے রেসপেক্টে একটি দिये गये নোডের সাথে কানেক্টেড এলিয়া ক্যালকুলেট করে।
- এটি ইনসাইড পার্টে ভিন্ন কালার থাকা একটি স্পেসিফিক এলিয়া ফিল আপ বা রিক্যালার করে কাজ করে, এবং তাই ইমেজের বাউন্ডারি।
- এটি একটি ছবি দিয়ে রিপ্রেজেন্ট করা হয় যাতে একটি नेবারহুড থাকে যার বর্ডার আছে এবং স্বতন্ত্র কালার রিজন আছে।
- স্পেসিফিক ইন্টেরিয়র কালার রিপ্লেস করা যায়, এই পার্টগুলো পেইন্ট করার জন্য।
- মেমরি কনসাম্পশন বেশি।
- এটি একটি তুলনামূলক সিম্পল অ্যালগরিদম।
- এতে একাধিক বাউন্ডারি কালার থাকা ইমেজ প্রসেস করার ক্ষমতা আছে।
- বাউন্ডারি-ফিল অ্যালগরিদমের তুলনায় এটি কমপারেটিভলি স্লোয়ার।
- ইন্টেরিয়ার পার্ট পেইন্ট করতে একটি র্যান্ডম কালার ব্যবহার করা যায়, এবং পুরনো পিক্সেলটি নতুন এক্সচেঞ্জ করা হয়।
- এটি একটি ইফিশিয়েন্ট অ্যালগরিদম।
পিক্সেল কানেক্ট করে মাল্টিপল বাউন্ডারি তৈরির দুটি মেথড ব্যবহার করা যায়:
- 4-connected way: এই মেথডে, পিক্সেলের ম্যাক্সিমাম চারটি নেighbour থাকতে পারে। এগুলো বর্তমান পিক্সেলের লেফট, রাইট, Above এবং Below পজিশনে থাকবে।
- 8-connected way: এই মেথডে, পিক্সেলের ম্যাক্সিমাম ৮টি নেighbour থাকতে পারে। নেighbouring পজিশনগুলো চারটি ডায়াগোনাল পিক্সেলের বিপরীতে চেক করা হয়।
বাউন্ডারি-ফিল অ্যালগরিদম (Boundary-fill algorithm)
- যখন বাউন্ডারি সিঙ্গেল কালার ধারণ করে, অ্যালগরিদম আউটওয়ার্ড ডিরেকশনে পিক্সেল বাই পিক্সেল চালিয়ে যায় যতক্ষণ না বাউন্ডারি কালার পাওয়া যায়।
- এটি ইন্টারেক্টিভ পেইন্টিং প্যাকেজে ইমপ্লিমেন্টেড থাকে, যেখানে ইনসাইড পয়েন্টগুলো সহজে বেছে নেওয়া যায়।
- অ্যালগরিদম শুরু হয় একটি ইনসাইড পয়েন্টের কোঅর্ডিনেট (x, y), একটি বাউন্ডারি কালার এবং ফিল কালার অ্যাকসেপ্ট করে যা ইনপুট হয়।
- পয়েন্ট (x, y) থেকে, অ্যালগরিদম এর নেighbouring লোকেশন চেক করে সেগুলো বাউন্ডারি কালারের পার্ট কিনা নির্ধারণ করতে।
- যদি সেগুলো বাউন্ডারি কালার থেকে না হয়, তবে সেগুলো ফিল কালারের সাথে পেইন্ট করা হয়, এবং এডজাসেন্ট পিক্সেলগুলো একই কন্ডিশনের বিপরীতে টেস্ট করা হয়।
- এই প্রসেস শেষ হয় যখন বাউন্ডারি কালার পর্যন্ত সকল পিক্সেল চেক করা হয়।
- এলিয়াটি একটি সিঙ্গেল কালার দিয়ে ডিফাইন করা হয়।
- মেমরি কনসাম্পশন কম।
- ফ্লাড-ফিল অ্যালগরিদমের তুলনায় এটি দ্রুত।
- ফ্লাড-ফিল অ্যালগরিদমের তুলনায় এটি জটিল।
- এটি সিঙ্গেল বাউন্ডারি কালারवाले ইমেজ প্রসেস করতে পারে।