मैं एक अच्छी तरह से परिभाषित बिंदु से दूसरे में एक रेखा को प्लॉट करना चाहता हूं और फिर इसे चिकनाई के लिए गॉसियन फ़िल्टर का उपयोग करने के लिए एक छवि मैट्रिक्स में बदलना चाहता हूं। इसके लिए मैं एक पंक्ति प्लॉट करने और छवि में आकृति विंडो को कैप्चर करने के लिए line
और getframe
फ़ंक्शंस का उपयोग करता हूं, लेकिन getframe
बहुत धीमा और बहुत विश्वसनीय नहीं है। मैंने देखा कि कंप्यूटर लॉक होने पर यह कुछ भी कैप्चर नहीं करता है और मुझे 170 निष्पादन के बाद out of memory
त्रुटि मिली है।MATLAB में इसमें खींची गई रेखा के साथ मैं एक छवि मैट्रिक्स कैसे बना सकता हूं?
मेरे प्रश्न हैं:
- वहाँ
getframe
है कि मैं का उपयोग कर सकते करने के लिए एक विकल्प के है? - क्या छवि मैट्रिक्स बनाने और सीधे इसमें रेखा खींचने का कोई तरीका है?
यहाँ एक न्यूनतम कोड नमूना है:
figure1=line([30 35] ,[200 60]);
F= getframe;
hsize=40; sigma=20;
h = fspecial('gaussian',hsize,sigma);
filteredImg = imfilter(double(F.cdata), h,256);
imshow(uint8(filteredImg));
[अद्यतन]
उच्च प्रदर्शन linspace
साथ मार्क विचार बहुत आशाजनक दिखता है, लेकिन मैं कैसे उपयोग करते हैं मैट्रिक्स के साथ गणना निर्देशांक linspace
? मैंने निम्नलिखित कोड की कोशिश की, लेकिन यह काम नहीं करता है क्योंकि मुझे लगता है कि यह चाहिए। मुझे लगता है यह एक बहुत ही सरल और बुनियादी MATLAB बात है, लेकिन मैं सिर्फ यह आसपास मेरे सिर लपेटो नहीं कर सकते हैं:
matrix=zeros(200,60);
diagonal=round([linspace(30,200,numSteps); linspace(35,60,numSteps)]);
matrix(diagonal(1,:), diagonal(2,:))=1;
imshow(matrix);
तो, तुम क्या कर रहे एक वेक्टर छवि की rasterisation है। इस विषय पर बहुत सारे अच्छे संदर्भ, विकिपीडिया, हमेशा के रूप में, शुरू करने के लिए एक अच्छी जगह है। –
मुझे पता है, लेकिन मैं हमेशा Matlab अपने कार्यों का उपयोग करने की कोशिश करता हूं। मैं ज्यादा नहीं सीखता, लेकिन वे तेज़ हैं और मुझे अपने कोड की तरह उन्हें डिबग करने में समय बिताना नहीं है। – Framester