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

ওপেনসিভি জাভা লাইব্রেরি ব্যবহার করে চিত্রের ওপর জ্যামিতিক আকৃতি কীভাবে আঁকবেন?


জাভা ওপেনসিভি লাইব্রেরির org.opencv.imgproc প্যাকেজে Imgproc নামক একটি ক্লাস রয়েছে যা resize(), wrapAffine(), filter2D ইত্যাদি 다양한 মেথড প্রদান করে একটি ইনপুট ইমেজ প্রক্রিয়া করার জন্য।

এছাড়াও এটি চিত্রের ওপর জ্যামিতিক আকৃতি আঁকার জন্য মেথডের একটি সেট প্রদান করে, তাদের মধ্যে কিছু:

আকৃতি মেথড এবং বর্ণনা
এলিপস আপনি ellipse() মেথড ব্যবহার করে একটি চিত্রে এলিপস আঁকতে পারেন।
সার্কেল আপনি circle() মেথড ব্যবহার করে একটি চিত্রে সার্কেল আঁকতে পারেন।
রেক্ট্যাঙ্গেল আপনি rectangle() মেথড ব্যবহার করে একটি চিত্রে রেক্ট্যাঙ্গেল আঁকতে পারেন।
পলিগন আপনি polygon() মেথড ব্যবহার করে একটি চিত্রে পলিগন আঁকতে পারেন।
লাইন আপনি line() মেথড ব্যবহার করে একটি চিত্রে লাইন আঁকতে পারেন।

উদাহরণ

নিচের জাভা উদাহরণ একটি খালি ওপেনসিভি চিত্রের ওপর বিভিন্ন আকৃতি আঁকে:

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

public class DrawingGeometricalShapes {
    public static void main(String args[]) {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        Mat src = Imgcodecs.imread("D:\\blank.jpg");
        Scalar color = new Scalar(0, 0, 120);
        
        // একটি সার্কেল আঁকা
        Imgproc.circle(src, new Point(75, 65), 40, color, Imgproc.FILLED);
        
        // একটি এলিপস আঁকা
        Imgproc.ellipse(src, new RotatedRect(new Point(330, 60), new Size(100, 65), 180), color, Imgproc.FILLED);
        
        // একটি লাইন আঁকা
        Imgproc.line(src, new Point(540, 30), new Point(540, 90), color, 5);
        
        // ফিল্ড পলিগন আঁকা
        List<MatOfPoint> list = new ArrayList();
        list.add(new MatOfPoint(
            new Point(410, 60), new Point(430, 30),
            new Point(470, 30), new Point(490, 60),
            new Point(470, 100), new Point(430, 100)
        ));
        Imgproc.fillPoly(src, list, color, 8);
        
        // একটি রেক্ট্যাঙ্গেল আঁকা
        Imgproc.rectangle(src, new Point(150, 30), new Point(250, 95), color, Imgproc.FILLED);
        
        HighGui.imshow("জ্যামিতিক আকৃতিগুলো", src);
        HighGui.waitKey();
    }
}

আউটপুট

ওপেনসিভি জাভা লাইব্রেরি ব্যবহার করে চিত্রের ওপর জ্যামিতিক আকৃতি কীভাবে আঁকবেন?


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

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

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

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