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

Java OpenCV লাইব্রেরি ব্যবহার করে ইমেজ কন্টুর আঁকার পদ্ধতি

কন্টুর হলো একটি নির্দিষ্ট আকৃতির বাউন্ডারি লাইন আঁকা যা সকল পয়েন্টকে জড়ে। এর ব্যবহার করে আপনি:

  • একটি অবজেক্টের আকৃতি খুঁজে পেতে পারেন।
  • একটি অবজেক্টের এলিয়া ক্যালকুলেট করতে পারেন।
  • একটি অবজেক্ট ডিটেক্ট করতে পারেন।
  • একটি অবজেক্ট রিকগনাইজ করতে পারেন।

আপনি findContours() মেথড ব্যবহার করে একটি ইমেজে বিভিন্ন আকৃতি, অবজেক্টের কন্টুর খুঁজে পেতে পারেন। একইভাবে আপনি আঁকতে পারেন।

আপনি drawContours() মেথড ব্যবহার করে খুঁজে পাওয়া কন্টুরগুলো আঁকতে পারেন। এই মেথড নিচের প্যারামিটার গ্রহণ করে:

  • রেজাল্ট ইমেজ স্টোর করার জন্য একটি খালি Mat অবজেক্ট।
  • খুঁজে পাওয়া কন্টুর ধারণকারী একটি লিস্ট অবজেক্ট।
  • একটি ইন্টিজার ভ্যালু যা কোন কন্টুর আঁকবে তা নির্দেশ করে (-ve ভ্যালু সব আঁকার জন্য)।
  • কন্টুরের রঙ নির্দিষ্ট করার জন্য একটি Scalar অবজেক্ট।
  • কন্টুরের থিকনেস নির্দিষ্ট করার জন্য একটি ইন্টিজার ভ্যালু।

উদাহরণ

import java.util.ArrayList;
import java.util.List;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class DrawingContours {
    public static void main(String args[]) throws Exception {
        // OpenCV কোর লাইব্রেরি লোড করা
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        String file = "D:\\Images\\shapes.jpg";
        Mat src = Imgcodecs.imread(file);
        
        // সোর্স ইমেজকে বাইনারি-তে কনভার্ট
        Mat gray = new Mat(src.rows(), src.cols(), src.type());
        Imgproc.cvtColor(src, gray, Imgproc.COLOR_BGR2GRAY);
        Mat binary = new Mat(src.rows(), src.cols(), src.type(), new Scalar(0));
        Imgproc.threshold(gray, binary, 100, 255, Imgproc.THRESH_BINARY_INV);
        
        // কন্টুর খুঁজা
        List contours = new ArrayList<>();
        Mat hierarchey = new Mat();
        Imgproc.findContours(binary, contours, hierarchey, Imgproc.RETR_TREE,
                Imgproc.CHAIN_APPROX_SIMPLE);
        
        // কন্টুর আঁকা
        Scalar color = new Scalar(0, 0, 255);
        Imgproc.drawContours(src, contours, -1, color, 2, Imgproc.LINE_8,
                hierarchey, 2, new Point());
        
        HighGui.imshow("Drawing Contours", src);
        HighGui.waitKey();
    }
}

ইনপুট ইমেজ

Java OpenCV লাইব্রেরি ব্যবহার করে ইমেজ কন্টুর আঁকার পদ্ধতি

আউটপুট

প্রোগ্রাম এক্সিকিউট করলে নিচের উইন্ডো জেনারেট হবে:

Java OpenCV লাইব্রেরি ব্যবহার করে ইমেজ কন্টুর আঁকার পদ্ধতি

  1. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে 네가েটিভ চিত্রকে পজিটিভ চিত্রে রূপান্তর

  2. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে রঙিন চিত্রকে ব্লু/গ্রিন/রেড চিত্রে রূপান্তর

  3. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে রঙিন চিত্রকে গ্রেস্কেলে রূপান্তর

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