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

OpenCV का उपयोग करके किसी छवि की चमक को कम करने के लिए JavaFX उदाहरण।


Java का उपयोग करके किसी छवि की चमक को बदलने का एक तरीका convertTo() का उपयोग करना है तरीका। यह विधि किसी छवि के कंट्रास्ट और चमक को बदलने के लिए दिए गए मैट्रिक्स पर आवश्यक गणना करती है। यह विधि 4 पैरामीटर स्वीकार करती है -

  • चटाई -रिक्त मैट्रिक्स परिणाम को समान आकार और स्रोत मैट्रिक्स के प्रकार के साथ रखने के लिए।

  • rtype - आउटपुट मैट्रिक्स के प्रकार को निर्दिष्ट करने वाला पूर्णांक मान। यदि यह मान ऋणात्मक है, तो प्रकार स्रोत के समान होगा।

  • अल्फा - लाभ मूल्य, जो 0 से अधिक होना चाहिए (डिफ़ॉल्ट मान 1)।

  • बीटा - पूर्वाग्रह मान (डिफ़ॉल्ट मान 0)।

यदि पैरामीटर के लिए चुना गया मान बीटा एक ऋणात्मक मान है (0 से -255) छवि की चमक कम हो जाती है।

उदाहरण

आयात करें javafx.beans.value.ObservableValue;import javafx.embed.swing.SwingFXUtils;import javafx.geometry.Insets;import javafx.scene.Scene;import javafx.scene.control.Label;import javafx.scene.control.Slider;import javafx.scene.image.ImageView;import javafx.scene.image.WritableImage;import javafx.scene.layout.VBox;import javafx.stage.Stage;import javax.imageio.ImageIO;import org.opencv.core.Core;import org.opencv.core.Mat;import org.opencv.core.MatOfByte;import org.opencv.imgcodecs.Imgcodecs;public class DecreeasingBrightnessJavaFX एप्लिकेशन का विस्तार करता है {डबल कंट्रास्ट =1; निजी अंतिम int rtype =-1; डबल अल्फा =1; डबल बीटा =0; स्लाइडर स्लाइडर1; इंट स्लाइडरमिनवैल =0; इंट स्लाइडरमैक्सवैल =255; इंट स्लाइडरइनिटवैल =255; मैट स्रोत =शून्य; सार्वजनिक शून्य प्रारंभ (चरण चरण) IOException फेंकता है {// OpenCV कोर लाइब्रेरी लोड हो रहा है System.loadLibrary(Core.NATIVE_LIBRARY_NAME); स्ट्रिंग फ़ाइल ="डी:\\छवि\\cuba.jpg"; src =Imgcodecs.imread (फ़ाइल); लिखने योग्य छवि लिखने योग्य छवि =लोड इमेज (src); // छवि दृश्य सेट करना ImageView छवि दृश्य =नया छवि दृश्य (लिखने योग्य छवि); imageView.setX(25); imageView.setY(25); imageView.setFitHeight(400); imageView.setFitWidth(550); imageView.setPreserveRatio (सच); // स्लाइडर स्लाइडर सेट करना 1 =नया स्लाइडर (स्लाइडरमिनवैल, स्लाइडरमैक्सवैल, स्लाइडरइनिटवैल); स्लाइडर1.सेटशो टिकलेबल (सच); स्लाइडर1.सेटशो टिकमार्क (सच); स्लाइडर1.सेटमेजरटिक यूनिट (25); स्लाइडर1.सेटब्लॉकइन्क्रिमेंट(10); // लेबल लेबल सेट करना लेबल 1 =नया लेबल (); लेबल लेबल 2 =नया लेबल (); // स्लाइडर स्लाइडर 1 के लिए श्रोता। वैल्यूप्रॉपर्टी ()। एड लिस्टनर (नया चेंजलिस्टर <नंबर> () {सार्वजनिक शून्य बदल गया (ऑब्जर्वेबल वैल्यू ऑब्जर्वेबल, नंबर पुराना वैल्यू, नंबर न्यू वैल्यू) {कोशिश करें {अल्फा =न्यूवैल्यू। डबलवैल्यू (); मैट डेस्ट =नया मैट (src.rows (), src.cols (), src.type ()); अल्फा =(अल्फा / स्लाइडरमैक्सवैल); बीटा =1.0 - अल्फा; लेबल 1.सेटटेक्स्ट ("α-मान:" + अल्फा); लेबल2.सेटटेक्स्ट ("β-मान:" + बीटा); src.convertTo (dest, rtype, alpha, beta); imageView.setImage (loadImage (dest)); } पकड़ें (अपवाद ई) { System. out.println(""); } } }); // VBox सभी तीन घटकों को व्यवस्थित करने के लिए VBox vbox =new VBox (); vbox.setPadding(नए इनसेट(20)); vbox.setSpaceing(10); vbox.getChildren ()। AddAll (लेबल 1, लेबल 2, स्लाइडर 1, इमेज व्यू); // एक दृश्य वस्तु बनाना दृश्य दृश्य =नया दृश्य (vbox, 600, 450); स्टेज.सेटटाइटल ("एक छवि को कम करना"); स्टेज.सेटसीन (दृश्य); मंच पर शो(); } सार्वजनिक लिखने योग्य छवि लोड इमेज (मैट छवि) IOException फेंकता है {MatOfByte matOfByte =new MatOfByte (); Imgcodecs.imencode(.jpg", image, matOfByte); // एन्कोडेड मैट को एक बाइट सरणी में संग्रहीत करना बाइट [] बाइटअरे =matOfByte.toArray (); // छवि इनपुटस्ट्रीम को प्रदर्शित करना =नया बाइटअरेइनपुटस्ट्रीम (बाइटएरे); BufferedImage bufImage =ImageIO.read (इन); WritableImage writableImage =SwingFXUtils.toFXImage(bufImage, null); वापसी योग्य छवि; } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग आर्ग []) {लॉन्च (तर्क); }}

इनपुट

OpenCV का उपयोग करके किसी छवि की चमक को कम करने के लिए JavaFX उदाहरण।

आउटपुट

OpenCV का उपयोग करके किसी छवि की चमक को कम करने के लिए JavaFX उदाहरण।


  1. छवि के तीखेपन को बदलने के लिए OpenCV JavaFX एप्लिकेशन

    इमेज को शार्प करना ब्लर के विपरीत है। OpenCV लाइब्रेरी का उपयोग करके किसी छवि के तीखेपन को बदलने के लिए, आपको गॉसियन फ़िल्टर का उपयोग करके इसे चिकना/धुंधला करना होगा और मूल छवि से चिकने संस्करण को घटाना होगा। उदाहरण निम्नलिखित एक जावाएफएक्स प्रोग्राम है जिसमें दो स्लाइडर अल्फा और बीटा मानों का प्रत

  1. JavaFX और OpenCV का उपयोग करके छवि की चमक और कंट्रास्ट को बदलना

    कन्वर्ट टू () org.opencv.core.Mat . की विधि वर्ग 4 मापदंडों को स्वीकार करता है:मैट (खाली मैट्रिक्स), rtype (पूर्णांक), अल्फा (पूर्णांक), बीटा (पूर्णांक), एक ही क्रम में। चमक बढ़ाने के लिए - आपको बीटा मान को 0 से घटाकर -255 (अल्फ़ा मान 1 रखते हुए) करना होगा। चमक कम करने के लिए - आपको बीटा मान क

  1. Java OpenCV लाइब्रेरी का उपयोग करके किसी छवि की चमक को कैसे बदलें?

    कन्वर्ट टू () org.opencv.core.Mat . की विधि क्लास किसी इमेज के कंट्रास्ट और ब्राइटनेस को बदलने के लिए दिए गए मैट्रिक्स पर जरूरी कैलकुलेशन करता है। यह विधि 4 पैरामीटर स्वीकार करती है - चटाई -रिक्त मैट्रिक्स परिणाम को समान आकार और स्रोत मैट्रिक्स के प्रकार के साथ रखने के लिए। rtype - आउटपुट मैट्