मैं हर कोण में बारकोड का पता लगाने के लिए फॉर्मूला कैसे बदल सकता हूं? - MATLAB


14

मैं हर कोण में बारकोड का पता लगाने के लिए फॉर्मूला कैसे बदल सकता हूं?

सूत्र

मूल छवि संसाधित छवि

 rgb = imread('barcode4.jpg');
% Resize Image
rgb = imresize(rgb,0.33);
figure(),imshow(rgb);
% Convert from RGB to Gray
Igray = double(rgb2gray(rgb));
% Calculate the Gradients
[dIx, dIy] = gradient(Igray);
B = abs(dIx) - abs(dIy);
% Low-Pass Filtering
H = fspecial('gaussian', 20, 10);
C = imfilter(B, H);
C = imclearborder(C);
figure(),imagesc(C);colorbar

जवाबों:


8

यदि आपके पास जो फ़िल्टर आपके लिए पर्याप्त रूप से काम करता है, आप बस imrotateस्रोत छवि के कई घुमाए गए संस्करण बनाने के लिए उपयोग कर सकते हैं , और उनमें से प्रत्येक पर आपके द्वारा उपयोग किए गए फ़िल्टर का उपयोग करें ( bilinearसमझदार डेरिवेटिव प्राप्त करने के लिए उपयोग करना सुनिश्चित करें )


सलाह के लिए धन्यवाद। मैं कैसे कई घुमाएँ संस्करण बना सकते हैं ?? क्षमा करें, मैं MatLab के लिए नया हूँ

मैं ऊर्ध्वाधर या क्षैतिज बारकोड प्राप्त करने का प्रबंधन करता हूं। हालाँकि सूत्र केवल क्षैतिज बारकोड का पता लगा सकता है। क्या मैं सूत्र बदल सकता हूं ताकि ऊर्ध्वाधर और क्षैतिज दोनों बारकोड का पता लगा सकें।
किम

mathworks.com/matlabcentral/fileexchange/31727-barcode-reader आप इस लिंक की जाँच कर सकते हैं
vini

7

आपके समीकरण उन क्षेत्रों पर प्रकाश डालते हैं जहां एक्स दिशा में ढाल का परिमाण वाई दिशा में होने की तुलना में लगातार अधिक है। इस कार्य को सभी दिशाओं में करने के लिए, तब आप संभवतः ऐसे क्षेत्र चाहते हैं जहाँ किसी भी दिशा में ढाल का परिमाण अधिक हो।

निम्नलिखित का उपयोग करके देखें:

B = double(sqrt(dIx.^2 + dIy.^2) > 0)

ऐसा नहीं है कि यह मूल रूप से हर किनारे को उजागर करेगा, लेकिन कम-पास फिल्टर का मतलब होगा कि आपको एक साथ कई किनारों की आवश्यकता होगी।


कोडिंग के लिए धन्यवाद! लेकिन मुझे नहीं पता कि फॉर्मूला बदलने की कोशिश करने के लिए मुझे कोड कहां डालना है, सब कुछ हरा हो गया।

मेरे अद्यतन संस्करण का प्रयास करें।
नज्बु

लेकिन अब पूरी छवि लाल रंग में बदल गई !!
किम

मैं ऊर्ध्वाधर या क्षैतिज बारकोड प्राप्त करने का प्रबंधन करता हूं। हालाँकि सूत्र केवल क्षैतिज बारकोड का पता लगा सकता है। क्या मैं सूत्र बदल सकता हूं ताकि ऊर्ध्वाधर और क्षैतिज दोनों बारकोड का पता लगा सकें।
किम

मैं इस फर्माले '' बी = डबल (sqrt (dIx। ^ 2 + dIy। ^ 2)> 0) का परीक्षण करता हूं "यह काम नहीं कर रहा है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.