Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

OpenCV में इमेज मास्किंग क्या है?


मास्क ऑपरेशन में इमेज के प्रत्येक पिक्सल का मान दिए गए मास्क मैट्रिक्स के आधार पर पुनर्गणना किया जाता है, जिसे कर्नेल के रूप में जाना जाता है। मास्किंग को अन्यथा फ़िल्टरिंग के रूप में जाना जाता है।

Imgproc क्लास का filter2D() मेथड एक स्रोत, गंतव्य और कर्नेल मैट्रिक्स स्वीकार करता है और स्रोत मैट्रिक्स को कर्नेल मैट्रिक्स के साथ कन्वोल्व करता है। इस मेथड का उपयोग करके आप इमेज को मास्क या फ़िल्टर कर सकते हैं।

उदाहरण

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 MaskingExample {
    public static void main(String[] args) {
        // OpenCV कोर लाइब्रेरी लोड करना
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        // इनपुट इमेज पढ़ना
        String file = "D://images//boy.jpg";
        Mat src = Imgcodecs.imread(file);
        
        // परिणाम स्टोर करने के लिए एक खाली मैट्रिक्स बनाना
        Mat dst = new Mat();
        
        // कर्नेल1 बनाना
        Mat kernel1 = new Mat(3, 3, CvType.CV_8S);
        int row = 0, col = 0;
        kernel1.put(row, col, 0, -1, 0, -1, 5, -1, 0, -1, 0);
        
        // कर्नेल2 बनाना
        Mat kernel2 = Mat.ones(2, 2, CvType.CV_32F);
        for (int i = 0; i < kernel2.rows(); i++) {
            for (int j = 0; j < kernel2.cols(); j++) {
                double[] m = kernel2.get(i, j);
                for (int k = 1; k < m.length; k++) {
                    m[k] = m[k] / (2 * 2);
                }
                kernel2.put(i, j, m);
            }
        }
        
        // कर्नेल1 का उपयोग करके इमेज फ़िल्टर करना
        Imgproc.filter2D(src, dst, -1, kernel1);
        HighGui.imshow("मास्क उदाहरण1", dst);
        
        dst = new Mat();
        
        // कर्नेल2 का उपयोग करके इमेज फ़िल्टर करना
        Imgproc.filter2D(src, dst, -1, kernel2);
        HighGui.imshow("मास्क उदाहरण2", dst);
        
        HighGui.waitKey();
    }
}

इनपुट इमेज

OpenCV में इमेज मास्किंग क्या है?

आउटपुट

उपरोक्त प्रोग्राम निष्पादित करने पर निम्नलिखित विंडोज उत्पन्न करता है -

कर्नेल1 - OpenCV में इमेज मास्किंग क्या है?

कर्नेल2 - OpenCV में इमेज मास्किंग क्या है?

  1. OpenCV का उपयोग करके छवि पर आयत बनाना OpenCV का उपयोग करके छवि पर आयत बनाना

    इस प्रोग्राम में, हम OpenCV फ़ंक्शन rectangle() का उपयोग करके एक आयत बनाएंगे। यह फ़ंक्शन प्रारंभिक निर्देशांक, अंतिम निर्देशांक, रंग और मोटाई और छवि जैसे कुछ पैरामीटर लेता है। मूल छवि एल्गोरिदम चरण 1: cv2 आयात करें। चरण 2: imread() का उपयोग करके छवि पढ़ें। चरण 3: प्रारंभिक निर्देशांक परिभाषित करें

  1. OpenCV का उपयोग करके छवि पर दीर्घवृत्त बनाना OpenCV का उपयोग करके छवि पर दीर्घवृत्त बनाना

    इस प्रोग्राम में, हम OpenCV लाइब्रेरी का उपयोग करके छवि पर एक दीर्घवृत्त बनाएंगे। हम इसके लिए OpenCV फ़ंक्शन ellipse() का उपयोग करेंगे। मूल छवि एल्गोरिदम चरण 1: cv2 आयात करें। चरण 2: imread() का उपयोग करके छवि पढ़ें। चरण 3: केंद्र निर्देशांक सेट करें। चरण 4: अक्ष लंबाई सेट करें। चरण 5: कोण सेट करे

  1. OpenCV का उपयोग करके छवि पर रेखा बनाना OpenCV का उपयोग करके छवि पर रेखा बनाना

    इस प्रोग्राम में, हम OpenCV फ़ंक्शन line() का उपयोग करके छवि पर एक सरल रेखा बनाएंगे। मूल छवि एल्गोरिदम चरण 1: cv2 आयात करें। चरण 2: imread() का उपयोग करके छवि पढ़ें। चरण 3: image.shape मेथड का उपयोग करके छवि के आयाम प्राप्त करें। चरण 4: रेखा का प्रारंभिक बिंदु परिभाषित करें। चरण 5: रेखा का अंतिम ब