কম্পিউটার টিউটোরিয়াল

জাভাতে OpenCV Top Hat এবং Black Hat Морফোলজিক্যাল অপারেশন ব্যাখ্যা

মর্ফোলজিক্যাল অপারেশন হলো দেওয়া আকৃতির অনুযায়ী ইমেজ প্রসেস করার অপারেশন সেট।

  • ইরোশন (Erosion) - ইরোশন হলো একটি মর্ফোলজিক্যাল অপারেশন যেখানে ইমেজ বাউন্ডারি থেকে পিক্সেল রিমুভ করা হয়।
  • ডাইলেশন (Dilation) - ডাইলেশন হলো একটি মর্ফোলজিক্যাল অপারেশন যেখানে ইমেজ বাউন্ডারিতে পিক্সেল যোগ করা হয়।
  • যে টোটাল পিক্সেল যোগ/রিমুভ হয় সেটি ব্যবহার করা স্ট্রাকচারিং এলিমেন্টের ডাইমেনশনের উপর নির্ভর করে।
  • মর্ফোলজিক্যাল ওপেনিং (Morphological Opening) - এই অপারেশনে ইনপুটে ইরোশন প্রয়োগ করা হয় এবং রেজাল্টে ডাইলেশন প্রয়োগ করা হয়। এটি ইমেজের ফোরগ্রাউন্ড থেকে ছোট অবজেক্ট রিমুভ করতে ব্যবহৃত হয়।
  • মর্ফোলজিক্যাল ক্লোজিং (Morphological Closing) - এই অপারেশনে ইনপুটে ডাইলেশন প্রয়োগ করা হয় এবং রেজাল্টে ইরোশন প্রয়োগ করা হয়। এটি ইমেজে ছোট হোল রিমুভ করতে ব্যবহৃত হয়।

একটি মর্ফোলজিক্যাল টপ হ্যাট হলো দেওয়া ইমেজ এবং এর ওপেনিং-এর মধ্যে পার্থক্য।

উদাহরণ

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class TopHatExample {
    public static void main(String args[]) {
        // OpenCV কোর লাইব্রেরি লোড করা
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        // ইমেজ ডেটা পড়া
        String file = "D:\\Images\\morph_input1.jpg";
        Mat src = Imgcodecs.imread(file);
        
        // ডেস্টিনেশন ম্যাট্রিক্স তৈরি
        Mat dst = new Mat(src.rows(), src.cols(), src.type());
        
        // কার্নেল ম্যাট্রিক্স অবজেক্ট প্রস্তুত
        Mat kernel = Mat.ones(5, 5, CvType.CV_32F);
        
        // ইমেজে ডাইলেট প্রয়োগ
        Imgproc.morphologyEx(src, dst, Imgproc.MORPH_TOPHAT, kernel);
        
        // ইমেজ প্রদর্শন
        HighGui.imshow("Top Hat Gradient", dst);
        HighGui.waitKey();
    }
}

ইনপুট ইমেজ

জাভাতে OpenCV Top Hat এবং Black Hat Морফোলজিক্যাল অপারেশন ব্যাখ্যা

আউটপুট

জাভাতে OpenCV Top Hat এবং Black Hat Морফোলজিক্যাল অপারেশন ব্যাখ্যা

একটি মর্ফোলজিক্যাল ব্ল্যাক হ্যাট হলো ক্লোজিং এবং দেওয়া ইমেজের মধ্যে পার্থক্য।

উদাহরণ

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class BlackHatExample {
    public static void main(String args[]) {
        // OpenCV কোর লাইব্রেরি লোড করা
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        // ইমেজ ডেটা পড়া
        String file = "D:\\Images\\morph_input1.jpg";
        Mat src = Imgcodecs.imread(file);
        
        // ডেস্টিনেশন ম্যাট্রিক্স তৈরি
        Mat dst = new Mat(src.rows(), src.cols(), src.type());
        
        // কার্নেল ম্যাট্রিক্স অবজেক্ট প্রস্তুত
        Mat kernel = Mat.ones(5, 5, CvType.CV_32F);
        
        // ইমেজে ডাইলেট প্রয়োগ
        Imgproc.morphologyEx(src, dst, Imgproc.MORPH_BLACKHAT, kernel);
        
        // ইমেজ প্রদর্শন
        HighGui.imshow("Blackhat Gradient", dst);
        HighGui.waitKey();
    }
}

ইনপুট ইমেজ

জাভাতে OpenCV Top Hat এবং Black Hat Морফোলজিক্যাল অপারেশন ব্যাখ্যা

আউটপুট

জাভাতে OpenCV Top Hat এবং Black Hat Морফোলজিক্যাল অপারেশন ব্যাখ্যা

  1. ইমেজ প্রসেসিং/ওপেনসিভি ইমেজ ইরোজান জাভা উদাহরণ

  2. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্র ফ্লিপ (Flip) করা

  3. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে মিরর ইমেজ তৈরি

  4. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্র লিখা/সংরক্ষণ