मैं एक मैटलैब प्रोग्राम विकसित कर रहा हूं जिसमें मैं बहुभुज (अवतल या उत्तल) का उपयोग करता हूं। मुझे बहुभुज पर इमेडिलेट या इमोडोड आदि जैसे छवि प्रसंस्करण कार्यों का उपयोग करने की आवश्यकता है। इस अंत में, मुझे अपने बहुभुज को छवि में परिवर्तित करना चाहिए। मुझे आश्चर्य है कि क्या एक बहुभुज मैट्रिक्स में सीधे बहुभुज को स्केच करने का कोई तरीका है (अग्रभूमि के लिए 1 और पृष्ठभूमि के लिए 0)?छवि प्रसंस्करण कार्यों का उपयोग करने के लिए एक मैट्रिक्स या बाइनरी छवि में बहुभुज को कैसे स्केच करना है?
वर्तमान में, मैं 'getframe' का उपयोग करता हूं, फिर 'frame2im' और फिर 'im2bw' फ़ंक्शन ऐसा करने के लिए करता हूं। लेकिन इसकी कमी यह है कि अंतिम छवि (= मैट्रिक्स) के आकार पर मेरा कोई नियंत्रण नहीं है (यानि छवि के आकार को फ्रेम में छवि को परिवर्तित करते समय पिक्सल में आकार) इस तथ्य के कारण कि मैटलैब अपने प्लॉट को पिक्सेल में प्रदर्शित नहीं करता है (?)। तो हर बार जब कोई साजिश पर 'ज़ूम इन' या 'ज़ूम आउट' करता है, परिणामी मैट्रिक्स (= छवि) अलग-अलग होगा।
मेरी कोड:
Polygon = [ 15 45 33 30 40 23 ; 9 9 24 15 13 13]';
figure(1); clf; patch(Polygon(:,1),Polygon(:,2),'black');
axis off
%convert the plot to binary image
frame = getframe(gca);
im =frame2im(frame);
level = graythresh(im);
bw = ~im2bw(im,level);
%draw the resulting image
imtool(bw)
%dilate the image
SE = strel('square',5);
bw2 = imdilate(bw,SE);
%draw the dilated image
imtool(bw2)
संशोधित -> BW = poly2mask (बहुभुज (:, 1), बहुभुज (:, 2), ImageHeight, ImageWidth); –
@ कामरान: क्या आप अपनी टिप्पणी समझा सकते हैं? संशोधित करके आपका क्या मतलब है? – Azim
@Azim: मुझे लगता है कि वह एक छोटे टाइपो को इंगित कर रहा था। मैंने ठीक कर दिया। – gnovice