एक तस्वीर में एक विशिष्ट रेखा खोजें


9

मैं निम्न चित्र में रंग नीला और रंग ग्रे के बीच की रेखा ढूंढना चाहता हूं:

यहाँ छवि विवरण दर्ज करें

अधिक सटीक रूप से, उस रेखा के अंतिम बिंदु।

क्या किसी विकल्प को बदलना है? यदि हाँ, तो Hough का उपयोग करने से पहले मुझे चित्र कैसे सेट करना चाहिए?

इसे हल करने का कोई भी तरीका मददगार होगा।


पर्याप्त परिवर्तन से पहले एक बढ़त का पता लगाएं। यह उस संक्रमण को दोनों तरफ से काले रंग के साथ एक चमकदार रेखा में बदल देगा
एंडोलिथ

जवाबों:


10

सामान्य तौर पर, आप इस तरह की समस्या के लिए कैनी एज डिटेक्टर की तरह एक एज डिटेक्टर चाहते हैं। किनारों के बजाय लाइनों को निकालने के लिए आटा परिवर्तन उपयोगी है।

हालाँकि, इस विशिष्ट मामले में, आप कुछ करना पसंद कर रहे हैं:

imdata = imread('grayblue.jpg');
colidx = find(diff(imdata(1,:) ~= 0);

चूंकि यह इतनी सरल छवि है।


0

एक छवि के लिए यह सरल एक कनवल्शन कर्नेल जैसा निम्नलिखित किनारों को अच्छी तरह से मिलेगा:

[१ २ - १]

यह प्रत्येक एज पॉइंट पर सिंगल एज पिक्सेल देता है। कोई उपद्रव नहीं, कोई उपद्रव नहीं। कैनी भी इस समस्या के लिए शामिल है। यदि आप किसी भी कोण पर लाइनों के लिए किनारे बिंदुओं को खोजना चाहते हैं, तो आप एक साधारण लाप्लासियन, गॉसियन के लाप्लासियन (एलओजी), या गौसेन के अंतर (DoG) का उपयोग कर सकते हैं। सोबेल और प्रीविट भी सरल लेकिन अनुचित हैं क्योंकि वे एक "डबल मोटाई" लाइन का उत्पादन करते हैं।

यहाँ बताए गए किसी दुष्ट का तेज़ कार्यान्वयन है: http://www.ic.uff.br/~laernernandes/projects/kht/index.html

"पैरामीटरलेस हफ़" एल्गोरिदम भी हैं जो बहुत तेज़ हैं, लेकिन लागू करने और डिबग करने के लिए थोड़ा मुश्किल है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.