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

जावा का उपयोग करके ओपनसीवी हफ़ लाइन ट्रांसफ़ॉर्म कार्यान्वयन।

आप किसी दिए गए चित्र में हफ़ लाइन ट्रांसफ़ॉर्म का उपयोग करके सीधी रेखाओं का पता लगा सकते हैं। OpenCV में दो प्रकार के Hough लाइन ट्रांसफ़ॉर्म उपलब्ध हैं, जैसे कि Standard Hough लाइन ट्रांसफ़ॉर्म और, Probabilistic Hough Line Transform.

आप स्टैंडर्ड हफ़ लाइन ट्रांसफ़ॉर्म लागू कर सकते हैं HoughLines() . का उपयोग करके Imgproc वर्ग की विधि। यह विधि स्वीकार करती है -

  • स्रोत छवि और वेक्टर का प्रतिनिधित्व करने वाली दो मैट ऑब्जेक्ट्स जो लाइनों के पैरामीटर (आर, Φ) को स्टोर करती हैं।

  • पैरामीटर r (पिक्सेल) और Φ (रेडियन) के रिज़ॉल्यूशन का प्रतिनिधित्व करने वाले दो दोहरे चर।

  • एक पूर्णांक जो किसी रेखा को "पता लगाने" के लिए चौराहों की न्यूनतम संख्या को दर्शाता है।

आप संभाव्य हफ़ लाइन ट्रांसफ़ॉर्म . लागू कर सकते हैं HoughLinesP() . का उपयोग करके Imgproc वर्ग की विधि (समान पैरामीटर)

आप कैनी () . का उपयोग करके किसी दिए गए चित्र में किनारों का पता लगा सकते हैं Imgproc वर्ग की विधि। यह विधि स्वीकार करती है -

  • स्रोत और गंतव्य छवियों का प्रतिनिधित्व करने वाली दो मैट ऑब्जेक्ट।

  • थ्रेशोल्ड मान रखने के लिए दो दोहरे चर।

कैनी एज डिटेक्टर का उपयोग करके किसी दिए गए चित्र के किनारों का पता लगाने के लिए -

  • imread() . का उपयोग करके स्रोत छवि की सामग्री पढ़ें Imgcodecs . की विधि कक्षा।

  • cvtColor() . का इस्तेमाल करके इसे ग्रेस्केल इमेज में बदलें Imgproc . की विधि कक्षा।

  • धुंधला () . का उपयोग करके परिणामी (धूसर) छवि को धुंधला करें कर्नेल मान 3 के साथ Imgproc वर्ग की विधि।

  • canny() . का उपयोग करके धुंधली छवि पर कैनी एज डिटेक्शन एल्गोरिथम लागू करें Imgproc . की विधि ।

  • 0 के रूप में सभी मानों के साथ एक खाली मैट्रिक्स बनाएं।

  • इसमें पाए गए किनारों को copyTo() . का उपयोग करके जोड़ें चटाई . की विधि कक्षा।

उदाहरण

आयात करें javafx.scene.Scene आयात करें आयात करें .Imgproc;पब्लिक क्लास HoughLineTransform एप्लिकेशन का विस्तार करता है {सार्वजनिक शून्य प्रारंभ (स्टेज चरण) IOException फेंकता है {// OpenCV कोर लाइब्रेरी लोड हो रहा है System.loadLibrary (Core.NATIVE_LIBRARY_NAME); स्ट्रिंग फ़ाइल ="D:\\Images\\road4.jpg"; मैट स्रोत =Imgcodecs.imread (फ़ाइल); // छवि को ग्रे मैट ग्रे =नई मैट () में परिवर्तित करना; Imgproc.cvtColor(src, धूसर, Imgproc.COLOR_RGBA2GRAY); // किनारों का पता लगाना मैट किनारों =नया मैट (); Imgproc.Canny (ग्रे, किनारों, 60, 60*3, 3, असत्य); // कैनी मैट कैनीकलर का रंग बदलना =नया मैट (); Imgproc.cvtColor (किनारों, cannyColor, Imgproc.COLOR_GRAY2BGR); // (कैनी) मैट लाइनों =नई मैट () से हफ़ लाइनों का पता लगाना; Imgproc.HoughLines(किनारों, रेखाएं, 1, Math.PI/180, 150); for (int i =0; i

इनपुट छवि

जावा का उपयोग करके ओपनसीवी हफ़ लाइन ट्रांसफ़ॉर्म कार्यान्वयन।

आउटपुट

निष्पादित करने पर, उपरोक्त निम्नलिखित आउटपुट उत्पन्न करता है -

जावा का उपयोग करके ओपनसीवी हफ़ लाइन ट्रांसफ़ॉर्म कार्यान्वयन।


  1. जावा का उपयोग करके ओपनसीवी में ब्लर (औसत) कैसे कार्यान्वित करें?

    आप कम-पास वाले फ़िल्टर का उपयोग करके किसी छवि को फ़िल्टर करके उसे धुंधला कर सकते हैं, यह एक छवि से उच्च आवृत्ति सामग्री (शोर, किनारों) को हटा देता है। औसत, OpenCV द्वारा प्रदान की गई धुंधली तकनीकों में से एक है, यह केंद्रीय तत्व को कर्नेल क्षेत्र में सभी पिक्सेल के औसत से बदल देता है आप धुंधला ()

  1. जावा का उपयोग करके ओपनसीवी में एक रेखा कैसे खींचना है?

    Java OpenCV लाइब्रेरी के org.opencv.imgproc पैकेज में Imgproc नामक एक वर्ग है। एक रेखा खींचने के लिए आपको रेखा () . का आह्वान करना होगा इस वर्ग की विधि। यह विधि निम्नलिखित मापदंडों को स्वीकार करती है - एक मैट वस्तु उस छवि का प्रतिनिधित्व करती है जिस पर रेखा खींची जानी है। दो बिंदु वस्तुएं उन ब

  1. जावा ओपनसीवी लाइब्रेरी का उपयोग कर किसी छवि में चेहरों का पता कैसे लगाएं?

    CascadeClassifier वर्ग का उपयोग क्लासिफायर फ़ाइल को लोड करने और छवि में वांछित वस्तुओं का पता लगाने के लिए किया जाता है। इस वर्ग का डिटेक्टमल्टीस्केल () विभिन्न आकारों की कई वस्तुओं का पता लगाता है। यह विधि स्वीकार करती है - इनपुट छवि धारण करने वाली कक्षा Mat की एक वस्तु। पता लगाए गए चेहरों क