जावा डीआईपी - समझौता समझें

कन्वेंशन दो कार्यों पर एक गणितीय ऑपरेशन है एफ और जी। इस मामले में फ़ंक्शन एफ और जी छवियां हैं, क्योंकि एक छवि भी एक दो आयामी फ़ंक्शन है।

प्रदर्शन कर रहे हैं

किसी चित्र पर दीक्षांत समारोह करने के लिए, निम्नलिखित कदम उठाए जाते हैं -

  • केवल एक बार (क्षैतिज और लंबवत) मास्‍क को पलटें।
  • छवि पर मुखौटा स्लाइड।
  • संबंधित तत्वों को गुणा करें और फिर उन्हें जोड़ें।
  • इस प्रक्रिया को तब तक दोहराएं जब तक कि छवि के सभी मूल्यों की गणना नहीं हो जाती।

हम प्रयोग करते हैं OpenCV समारोह filter2Dछवियों पर दृढ़ संकल्प लागू करने के लिए। इसके तहत पाया जा सकता हैImgprocपैकेज। इसका सिंटैक्स नीचे दिया गया है -

filter2D(src, dst, depth , kernel, anchor, delta, BORDER_DEFAULT );

फ़ंक्शन तर्क नीचे वर्णित हैं -

अनु क्रमांक। तर्क और विवरण
1

src

यह स्रोत छवि है।

2

dst

यह गंतव्य छवि है।

3

depth

यह dst की गहराई है। एक नकारात्मक मान (जैसे -1) इंगित करता है कि गहराई स्रोत के समान है।

4

kernel

यह छवि के माध्यम से स्कैन किया जाने वाला कर्नेल है।

5

anchor

यह कर्नेल के सापेक्ष लंगर की स्थिति है। स्थान बिंदु (-1, -1) डिफ़ॉल्ट रूप से केंद्र को इंगित करता है।

6

delta

कनवल्शन के दौरान प्रत्येक पिक्सेल में जोड़ा जाना एक मूल्य है। डिफ़ॉल्ट रूप से यह 0 है।

7

BORDER_DEFAULT

हम डिफ़ॉल्ट रूप से यह मान देते हैं।

उदाहरण

निम्नलिखित उदाहरण ग्रेस्केल की छवि पर दृढ़ विश्वास करने के लिए Imgproc वर्ग के उपयोग को दर्शाता है।

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;

import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;

public class convolution {
   public static void main( String[] args ) {
   
      try {
         int kernelSize = 3;
         System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
         
         Mat source = Highgui.imread("grayscale.jpg",  Highgui.CV_LOAD_IMAGE_GRAYSCALE);
         Mat destination = new Mat(source.rows(),source.cols(),source.type());
         
         Mat kernel = new Mat(kernelSize,kernelSize, CvType.CV_32F) {
            {
               put(0,0,0);
               put(0,1,0);
               put(0,2,0);

               put(1,0,0);
               put(1,1,1);
               put(1,2,0);

               put(2,0,0);
               put(2,1,0);
               put(2,2,0);
            }
         };
         
         Imgproc.filter2D(source, destination, -1, kernel);
         Highgui.imwrite("original.jpg", destination);
         
      } catch (Exception e) {
          System.out.println("Error:" + e.getMessage());
      }
   }
}

उत्पादन

इस उदाहरण में हम अपनी छवि को निम्न फ़िल्टर (कर्नेल) के साथ जोड़ते हैं। इस फ़िल्टर के परिणामस्वरूप मूल छवि का निर्माण होता है -

0 0 0
0 1 0
0 0 0

मूल छवि

संचित छवि