2015-06-22 4 views
7

अवलोकन:ImageMagick का उपयोग करके छवि के भीतर सफेद आयत को कैसे बदल सकता हूं?

पहली तस्वीर मेरी मूल छवि है। यहां मैं एक और छवि के साथ दिखाए गए सफेद आयत को प्रतिस्थापित करना चाहता हूं।

enter image description here

मेरे दृष्टिकोण:

मैं floodfill और यह लग रहा है का उपयोग करते हुए एक मुखौटा छवि बनाई है के रूप में:

enter image description here

समस्या:

अब मैं दूसरी छवि में आयताकार की दूरी या समन्वय प्राप्त करना चाहता हूं ताकि मैं उन सह-समन्वयों का उपयोग यहां पहली (मूल छवि) के शीर्ष पर एक नई छवि को ओवरले करने के लिए कर सकूं।

मुझे छविमैजिक के chebyshev मॉर्फोलॉजी ऑपरेटर का उपयोग करने का थोड़ा सा विचार मिला, लेकिन मुझे नहीं पता कि मैं यह कैसे कर सकता हूं।

+0

कोशिश 'image.jpg कन्वर्ट 90% result.jpg' –

+0

-threshold या हो सकता है' परिवर्तित image.jpg -threshold 90% -canny 0x1 + 10% + 30% result.jpg' –

+0

नमस्ते मार्क। ..उत्तर के लिए धन्यवाद। लेकिन मैं जो चाहता हूं वह एक और छवि को ओवरलैप करने के लिए आयत की समन्वय, रोटेशन कोण और चौड़ाई और ऊंचाई प्राप्त करना है। कृपया मेरा दूसरा प्रश्न यहां देखें ताकि आपको पता चल सके कि मैं क्या हासिल करने की कोशिश कर रहा हूं। http://stackoverflow.com/questions/30971894/replacing-detected-object-in-a-frame-with-an-image-imageprocessing आशा है कि मैं सही तरीके से जा रहा हूं। यदि नहीं, तो कृपया मुझे मार्गदर्शन करें। वर्तमान में मैं इस तरह से अनुसरण कर रहा हूं: http://www.imagemagick.org/discourse-server/viewtopic.php?t=20269 –

उत्तर

6

मुझे लगता है कि आप एक सरल सीमा के साथ सुंदर सही ढंग से आकार का पता लगाने कर सकते हैं, इस तरह:

convert image.jpg -threshold 90% result.jpg 

enter image description here

और आप तो इस तरह की एक कैनी बढ़त का पता लगाने कर सकते हैं:

convert image.jpg -threshold 90% -canny 0x1+10%+30% result.jpg 

enter image description here

अगला चीजें मैं पर विचार करना होगा -trim फ़ंक्शन का उपयोग ट्रिम बॉक्स निर्देशांक खोजने के लिए इस तरह, कर रहे हैं:

convert result.jpg -format "%@" info: 
320x248+152+40 

मैं नीचे लाल रंग में पर कि चिह्नित किया है।

enter image description here

आप वास्तव में ट्रिम करने के लिए चाहते हैं, इस का उपयोग करें:

convert result.jpg -trim result.jpg 

enter image description here

और यह भी, deskew कोण

convert result.jpg -deskew 40 -format "%[deskew:angle]" info: 
-0.111906 

एक Hough लाइन का पता लगाने आपके लिए भी प्रभावी हो सकता है:

convert image.jpg -threshold 90% -canny 0x1+10%+30%  \ 
    \(+clone -background none       \ 
       -fill red -stroke red -strokewidth 2  \ 
       -hough-lines 5x5+80 -write lines.mvg  \ 
    \) -composite hough.png 

enter image description here

और फ़ाइल lines.mvg 4 रेखाएं हों, आप

# Hough line transform: 5x5+80 
viewbox 0 0 640 360 
line 449.259,0 474.432,360 # 90 
line 0,72.5604 640,27.8072 # 143 
line 0,293.098 640,248.344 # 187 
line 153.538,0 178.712,360 # 153 

थोड़ा आलसी होने के नाते के लिए देख रहे हैं, मैं उन पंक्तियों के चौराहों के लिए सुलझाने की तरह महसूस नहीं किया था, तो मैंने सोचा कि मैं ImageMagick को भी ऐसा करने दूंगा - इस तरह लाइन जंक्शनों को देखने के लिए मॉर्फोलॉजी का उपयोग करके:

convert image.jpg -threshold 90% -canny 0x1+10%+30%      \ 
    \(+clone -background none -fill red -stroke red -hough-lines 5x5+80 \) \ 
    -composite -fuzz 50% -fill black -opaque white      \ 
    -morphology HMT LineJunctions hough.png 

enter image description here

+0

धन्यवाद। जैसे ही मैं अपनी छवि मैगिक को 6.9 पर अपग्रेड करता हूं, मैं इसे आज़मा दूंगा। मेरे पास 6.7 है और इस प्रकार उपयोग करने में असमर्थ था- कैनी जो 6.8 में आगे का समर्थन करती है मुझे लगता है कि –

+0

उत्कृष्ट उत्तर, मार्क! :-) –

+0

ग्रेट वर्क ... बहुत बहुत धन्यवाद मार्क –

संबंधित मुद्दे

 संबंधित मुद्दे