মরফোলজিকাল ইমেজ প্রসেসিং (Morphological Image Processing)
মরফোলজিকাল ইমেজ প্রসেসিং হলো একটি ইমেজ প্রসেসিং টেকনিক, যা মূলত বাইনারি বা গ্রেস্কেল ছবির কাঠামো বিশ্লেষণ এবং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। এটি সাধারণত অবজেক্টের আকার এবং আকৃতি বিশ্লেষণে সহায়ক। মরফোলজিকাল ইমেজ প্রসেসিং সাধারণত একটি স্ট্রাকচারাল এলিমেন্ট ব্যবহার করে বিভিন্ন ধরনের অপারেশন সম্পন্ন করে, যেমন অবজেক্টের প্রান্ত মসৃণ করা, ছোট গর্ত পূরণ করা এবং ছোট আকৃতির বস্তু মুছে ফেলা।
মরফোলজিকাল অপারেশনস
১. ইরোশন (Erosion)
- বর্ণনা: ইরোশন অপারেশন একটি ইমেজের প্রতিটি পিক্সেলের আশেপাশের পিক্সেলের মানের উপর ভিত্তি করে পিক্সেলের মান কমিয়ে দেয়, যাতে অবজেক্ট ছোট হয়ে যায়। ইরোশন মূলত ছোট বস্তু মুছে ফেলতে ব্যবহৃত হয়।
- প্রক্রিয়া: স্ট্রাকচারাল এলিমেন্ট অনুযায়ী প্রতিটি পিক্সেলের আশেপাশের পিক্সেলগুলির সাথে তুলনা করে অবজেক্ট সংকুচিত করা হয়।
- ব্যবহার: ছোট আকৃতির অবজেক্ট অপসারণে এবং প্রান্ত মসৃণ করতে ব্যবহৃত হয়।
import java.awt.image.BufferedImage;
import java.awt.Color;
public class Erosion {
public static BufferedImage applyErosion(BufferedImage image, int erosionSize) {
int width = image.getWidth();
int height = image.getHeight();
BufferedImage erodedImage = new BufferedImage(width, height, image.getType());
for (int x = erosionSize; x < width - erosionSize; x++) {
for (int y = erosionSize; y < height - erosionSize; y++) {
boolean erode = false;
for (int i = -erosionSize; i <= erosionSize; i++) {
for (int j = -erosionSize; j <= erosionSize; j++) {
if (new Color(image.getRGB(x + i, y + j)).getRed() == 0) {
erode = true;
break;
}
}
if (erode) break;
}
if (erode) {
erodedImage.setRGB(x, y, Color.BLACK.getRGB());
} else {
erodedImage.setRGB(x, y, Color.WHITE.getRGB());
}
}
}
return erodedImage;
}
}২. ডাইলেশন (Dilation)
- বর্ণনা: ডাইলেশন অপারেশন একটি ইমেজের অবজেক্টের আকৃতি বাড়ায় এবং ঘন করে। এটি ইরোশন এর বিপরীত, যেখানে প্রতিটি পিক্সেলের আশেপাশের পিক্সেলগুলির মানের উপর ভিত্তি করে অবজেক্টকে প্রসারিত করা হয়।
- প্রক্রিয়া: স্ট্রাকচারাল এলিমেন্ট অনুযায়ী প্রতিটি পিক্সেলের আশেপাশের পিক্সেলগুলির সাথে তুলনা করে অবজেক্টের আকার বাড়ানো হয়।
- ব্যবহার: গর্ত পূরণ করা এবং ছোট বস্তু বড় করার জন্য ব্যবহৃত হয়।
import java.awt.image.BufferedImage;
import java.awt.Color;
public class Dilation {
public static BufferedImage applyDilation(BufferedImage image, int dilationSize) {
int width = image.getWidth();
int height = image.getHeight();
BufferedImage dilatedImage = new BufferedImage(width, height, image.getType());
for (int x = dilationSize; x < width - dilationSize; x++) {
for (int y = dilationSize; y < height - dilationSize; y++) {
boolean dilate = false;
for (int i = -dilationSize; i <= dilationSize; i++) {
for (int j = -dilationSize; j <= dilationSize; j++) {
if (new Color(image.getRGB(x + i, y + j)).getRed() == 255) {
dilate = true;
break;
}
}
if (dilate) break;
}
if (dilate) {
dilatedImage.setRGB(x, y, Color.WHITE.getRGB());
} else {
dilatedImage.setRGB(x, y, Color.BLACK.getRGB());
}
}
}
return dilatedImage;
}
}৩. ওপেনিং (Opening)
- বর্ণনা: ওপেনিং হলো ইরোশন এবং ডাইলেশনের একটি ক্রমান্বয়ে প্রয়োগকৃত অপারেশন। এটি ইরোশন অপারেশন দিয়ে শুরু হয় এবং তারপর ডাইলেশন অপারেশন প্রয়োগ করা হয়।
- প্রক্রিয়া: অবজেক্টের ছোট অংশগুলো সরিয়ে প্রান্ত মসৃণ করা হয়।
- ব্যবহার: ছোট বস্তু বা অবাঞ্ছিত শোর মুছে ফেলতে ব্যবহৃত হয়।
public class Opening {
public static BufferedImage applyOpening(BufferedImage image, int size) {
BufferedImage eroded = Erosion.applyErosion(image, size);
BufferedImage openedImage = Dilation.applyDilation(eroded, size);
return openedImage;
}
}৪. ক্লোজিং (Closing)
- বর্ণনা: ক্লোজিং হলো ডাইলেশন এবং ইরোশন এর একটি ক্রমান্বয়ে প্রয়োগকৃত অপারেশন। এটি ডাইলেশন অপারেশন দিয়ে শুরু হয় এবং তারপর ইরোশন অপারেশন প্রয়োগ করা হয়।
- প্রক্রিয়া: ছোট গর্ত এবং ফাঁকা স্থান পূরণ করা হয়।
- ব্যবহার: গর্ত পূরণ করতে এবং বড় অবজেক্টের প্রান্তে মসৃণতা আনতে ব্যবহৃত হয়।
public class Closing {
public static BufferedImage applyClosing(BufferedImage image, int size) {
BufferedImage dilated = Dilation.applyDilation(image, size);
BufferedImage closedImage = Erosion.applyErosion(dilated, size);
return closedImage;
}
}মরফোলজিকাল ইমেজ প্রসেসিং এর ব্যবহার ক্ষেত্র
- অবজেক্ট ডিটেকশন: ছবি থেকে নির্দিষ্ট অবজেক্ট আলাদা করা এবং শনাক্তকরণের জন্য ব্যবহৃত হয়।
- নয়েজ রিমুভাল: ছবির অবাঞ্ছিত শোর অপসারণে ওপেনিং এবং ক্লোজিং অপারেশন কার্যকর।
- বর্ডার ডিটেকশন: অবজেক্টের প্রান্ত বা কনট্যুর সনাক্তকরণের জন্য ব্যবহৃত হয়।
- বায়োমেট্রিক্স: ফিঙ্গারপ্রিন্ট বা অন্যান্য বায়োমেট্রিক ছবিতে নির্দিষ্ট বৈশিষ্ট্য শনাক্তকরণের জন্য।
সারসংক্ষেপ
মরফোলজিকাল ইমেজ প্রসেসিং হলো একটি ইমেজ প্রসেসিং টেকনিক যার মাধ্যমে ছবির আকার এবং কাঠামোগত বৈশিষ্ট্য বিশ্লেষণ করা হয়। ইরোশন, ডাইলেশন, ওপেনিং, এবং ক্লোজিং অপারেশনগুলো বিভিন্ন ইমেজ প্রসেসিং কাজ যেমন শোর অপসারণ, অবজেক্ট সেগমেন্টেশন এবং প্রান্ত সনাক্তকরণের জন্য ব্যবহৃত হয়।
Read more