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

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

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

उदाहरण

निम्नलिखित एक जावाएफएक्स प्रोग्राम है जिसमें दो स्लाइडर अल्फा और बीटा मानों का प्रतिनिधित्व करते हैं।

आयात करें 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 आयात करें डबल कंट्रास्ट =1; निजी अंतिम int rtype =-1; डबल अल्फा =1; डबल बीटा =0; स्लाइडर स्लाइडर1; स्लाइडर स्लाइडर2; मैट स्रोत =शून्य; सार्वजनिक शून्य प्रारंभ (चरण चरण) IOException फेंकता है {// OpenCV कोर लाइब्रेरी लोड हो रहा है System.loadLibrary(Core.NATIVE_LIBRARY_NAME); स्ट्रिंग फ़ाइल ="डी:\\छवि\\lamma2.jpg"; src =Imgcodecs.imread (फ़ाइल); लिखने योग्य छवि लिखने योग्य छवि =लोड इमेज (src); // छवि दृश्य सेट करना ImageView छवि दृश्य =नया छवि दृश्य (लिखने योग्य छवि); imageView.setX(50); imageView.setY(25); imageView.setFitHeight(400); imageView.setFitWidth(550); imageView.setPreserveRatio (सच); लेबल लेबल 1 =नया लेबल ("अल्फा मान"); // स्लाइडर स्लाइडर सेट करना 1 =नया स्लाइडर (0.1, 3, 1); स्लाइडर1.सेटशो टिकलेबल (सच); स्लाइडर1.सेटशो टिकमार्क (सच); स्लाइडर1.सेटमेजरटिकयूनिट(1); स्लाइडर1.सेटब्लॉकइन्क्रिमेंट(0.05); // लेबल लेबल सेट करना लेबल 2 =नया लेबल (); लेबल लेबल 3 =नया लेबल ("बीटा मान"); // स्लाइडर स्लाइडर सेट करना 2 =नया स्लाइडर (-2, 2, 0); स्लाइडर2.सेटशो टिकलेबल (सच); स्लाइडर2.सेटशो टिकमार्क (सच); स्लाइडर2.सेटमेजरटिकयूनिट(1); स्लाइडर2.सेटब्लॉकइन्क्रिमेंट(.5); // लेबल लेबल सेट करना लेबल 4 =नया लेबल (); // स्लाइडर स्लाइडर 1 के लिए श्रोता। वैल्यूप्रॉपर्टी ()। एड लिस्टनर (नया चेंजलिस्टर <नंबर> () {सार्वजनिक शून्य बदल गया (अवलोकन योग्य मूल्य अवलोकन योग्य, संख्या पुराना मान, संख्या नया मूल्य) {कोशिश करें {label2.setText ("α- मान:"+ newValue); अल्फा =newValue.doubleValue (); मैट डेस्ट =नया मैट (src.rows (), src.cols (), src.type ()); Imgproc.GaussianBlur (src, dest, new Size (0,0), 10); Core.addWeighted(src, alpha, dest, Beta, 0, dest); imageView.setImage(loadImage(dest)); } पकड़ें (अपवाद ई) { System.out.println(" "); } } }); स्लाइडर2.valueProperty().addListener(new ChangeListener() {सार्वजनिक शून्य बदल गया (अवलोकन योग्य देखने योग्य, संख्या पुराना मान, संख्या नया मान) {कोशिश करें {label4.setText ("β-मान:" + newValue); बीटा =newValue.doubleValue (); Mat dest =new Mat(src.rows(), src.cols(), src.type()); Imgproc.GaussianBlur(src, dest, new Size(0,0), 10); Core.addWeighted(src, alpha, dest, beta, 0, dest); imageView.setImage(loadImage(dest)); } पकड़ें (अपवाद ई) { System.out.println (""); }}} ); // VBox सभी तीन घटकों को व्यवस्थित करने के लिए VBox vbox =new VBox (); vbox.setPadding(नए इनसेट(20)); vbox.setSpaceing(10); vbox.getChildren ()। AddAll (लेबल 1, स्लाइडर 1, लेबल 2, इमेज व्यू, लेबल 3, स्लाइडर 2, लेबल 4); // एक दृश्य वस्तु बनाना दृश्य दृश्य =नया दृश्य (vbox, 600, 560); स्टेज.सेटटाइटल ("तीखेपन को बदलना"); स्टेज.सेटसीन (दृश्य); मंच पर शो(); } सार्वजनिक लिखने योग्य छवि लोड इमेज (मैट छवि) IOException फेंकता है {MatOfByte matOfByte =new MatOfByte (); Imgcodecs.imencode(.jpg", image, matOfByte); // एन्कोडेड मैट को एक बाइट सरणी में संग्रहीत करना बाइट [] बाइटअरे =matOfByte.toArray (); // छवि इनपुटस्ट्रीम को प्रदर्शित करना =नया बाइटअरेइनपुटस्ट्रीम (बाइटएरे); BufferedImage bufImage =ImageIO.read (इन); System.out.println ("इमेज लोडेड"); WritableImage writableImage =SwingFXUtils.toFXImage(bufImage, null); वापसी योग्य छवि; } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग आर्ग []) {लॉन्च (तर्क); }}

इनपुट

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

आउटपुट

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


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

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

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

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

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

    किसी छवि की चमक और कंट्रास्ट का बढ़ना / घटाना ऐसे ऑपरेशन हैं जिन्हें छवि के पिक्सेल को बदलकर प्राप्त किया जा सकता है। इसे एक समीकरण के रूप में व्यक्त किया जा सकता है - g(i, j) =α । f(i, j)+ β कहां, (i, j) पिक्सल की पोजीशन हैं। α (लाभ) और β (पूर्वाग्रह) परिवर्तन के पैरामीटर हैं। कभी-कभी गेन