2011-04-04 2 views
6

मेरे पास काले और सफेद में लाइसेंस प्लेट की एक छवि है।किसी छवि में सेगमेंट अंक - मैटलैब

इस कि यह कैसा दिखता है:

enter image description here

अब मैं थाली से संख्या में कटौती प्रत्येक अंक की पृष्ठभूमि, के आगे के काम के लिए रंग करने के लिए चाहते हैं।

इस तरह:

enter image description here

किसी भी मदद बहुत सराहना की जाएगी। (हो सकता है पहले उसे घुमाने के लिए तो सीमांकन बॉक्स क्षैतिज है मदद), जो आप समग्र कोण देता

1 दिन में नीचे छवि को संकुचित करें तो देखने के

-

+0

शीर्षक परिवर्तन का सुझाव दें - "छवि में सेगमेंट अंक"? –

उत्तर

7

अपने बक्से जेनरेट करने का एक आसान तरीका sum प्रत्येक कॉलम के नीचे आपकी छवि है और यह देखने के लिए कि कुछ थ्रेसहोल्ड के नीचे राशि कहाँ गिरती है (यानी जहां सफेद पिक्सेल उस कॉलम में दिए गए नंबर से नीचे ड्रॉप हो)। यह आपको कॉलम इंडेक्स देगा जहां बक्से होना चाहिए। इन बक्से की चौड़ाई बहुत संकीर्ण हो सकती है (यानी संख्याओं के छोटे भाग पक्षों से बाहर हो सकते हैं), ताकि आप किनारों को convolving द्वारा इंडेक्स वेक्टर के छोटे वेक्टर के साथ फैला सकें और परिणामी मानों की तलाश कर सकें जो कि अधिक से अधिक हैं शून्य। यहाँ ऊपर अपनी छवि का उपयोग करते हुए एक उदाहरण है:

rawImage = imread('license_plate.jpg'); %# Load the image 
maxValue = double(max(rawImage(:)));  %# Find the maximum pixel value 
N = 35;         %# Threshold number of white pixels 
boxIndex = sum(rawImage) < N*maxValue; %# Find columns with fewer white pixels 
boxImage = rawImage;      %# Initialize the box image 
boxImage(:,boxIndex) = 0;    %# Set the indexed columns to 0 (black) 
dilatedIndex = conv(double(boxIndex),ones(1,5),'same') > 0; %# Dilate the index 
dilatedImage = rawImage;     %# Initialize the dilated box image 
dilatedImage(:,dilatedIndex) = 0;  %# Set the indexed columns to 0 (black) 

%# Display the results: 
subplot(3,1,1); 
imshow(rawImage); 
title('Raw image'); 
subplot(3,1,2); 
imshow(boxImage); 
title('Boxes placed over numbers'); 
subplot(3,1,3); 
imshow(dilatedImage); 
title('Dilated boxes placed over numbers'); 

enter image description here

नोट: थ्रेशोल्डिंग ऊपर किया संभावना है कि काले और सफेद छवि (के मूल्यों के साथ प्रकार पर दो की हो सकता है के लिए खातों या तो 0 या 1), तार्किक (0 या 1 के मानों के साथ), या एक हस्ताक्षरित 8-बिट पूर्णांक (0 या 255 के मानों के साथ)। आपको बस इतना करना है कि संख्या के भाग वाले कॉलम की पहचान करने के लिए थ्रेसहोल्ड के रूप में उपयोग करने के लिए सफेद पिक्सल की संख्या के लिए N सेट करें।

+0

@gnovice आपके उत्तर के लिए धन्यवाद लेकिन यह काम नहीं किया। जो मुझे मिलता है वह केवल शीर्षक के साथ नया आंकड़ा है। कोई सुझाव? –

+0

@ माइकल: क्या यह काम करता है यदि आप अपनी पोस्ट से उसी छवि का उपयोग करते हैं (यानी राइट क्लिक करें, इसे सेव करें, फिर लोड करें और इसे संसाधित करें)? – gnovice

+0

@gnovice आपको सही है। मैं इसे सार्वभौमिक कैसे बना सकता हूं कि यह सभी छवियों के लिए मेल खाएगा। यदि यह संभव है ... –

0

मान लिया जाये कि आप बॉक्स पत्र आसपास है इस 1 डी हस्ताक्षर में अक्षरों के बीच अंतराल आपको अंकों की स्थिति दे रहा है। यदि आप प्लेटों के लिए अंकों की संख्या और प्रारूप को जानते हैं तो यह मदद करता है।