यह उत्तर संक्षेप और कुशल होने की कोशिश करने से अधिक व्याख्यात्मक है। मुझे लगता है कि gnovice का समाधान उस संबंध में सबसे अच्छा है। यदि आप यह समझने की कोशिश कर रहे हैं कि यह कैसे काम करता है, तो पढ़ना जारी रखें ...
अब आपके कोड के साथ समस्या यह है कि आप इनपुट छवि से आउटपुट छवि में स्थान मैप कर रहे हैं, यही कारण है कि आपको स्पॉटी मिल रही है आउटपुट। एक उदाहरण है जहां इनपुट छवि सभी सफेद और आउटपुट काला करने के लिए प्रारंभ है पर विचार करें, हम निम्नलिखित हो:

आप क्या कर किया जाना चाहिए (इनपुट करने के लिए उत्पादन से) विपरीत है। उदाहरण देकर स्पष्ट करने के लिए निम्न अंकन पर विचार करें:
1 c 1 scaleC*c
+-----------+ 1 +----------------------+ 1
| | | | | |
|----o | <=== | | |
| (ii,jj) | |--------o |
+-----------+ r | (i,j) |
inputImage | |
| |
+----------------------+ scaleR*r
ouputImage
Note: I am using matrix notation (row/col), so:
i ranges on [1,scaleR*r] , and j on [1,scaleC*c]
and ii on [1,r], jj on [1,c]
विचार यह है कि उत्पादन की छवि में प्रत्येक स्थान (i,j)
के लिए, हम इनपुट छवि निर्देशांक में "निकटतम" स्थान पर करना चाहते हैं। चूंकि यह एक सरल मानचित्रण है हम सूत्र है कि किसी भी x
y
को (दिए गए अन्य सभी पैरामीटर) नक्शे का उपयोग करें:
x-minX y-minY
--------- = ---------
maxX-minX maxY-minY
हमारे मामले में
, x
i
/j
समन्वय है और y
ii
/jj
है समन्वय। इसलिए प्रत्येक के लिए प्रतिस्थापन हमें देता है:
jj = (j-1)*(c-1)/(scaleC*c-1) + 1
ii = (i-1)*(r-1)/(scaleR*r-1) + 1
एक साथ टुकड़े लाना, हम निम्नलिखित कोड प्राप्त:
% read a sample image
inputI = imread('coins.png');
[r,c] = size(inputI);
scale = [2 2]; % you could scale each dimension differently
outputI = zeros(scale(1)*r,scale(2)*c, class(inputI));
for i=1:scale(1)*r
for j=1:scale(2)*c
% map from output image location to input image location
ii = round((i-1)*(r-1)/(scale(1)*r-1)+1);
jj = round((j-1)*(c-1)/(scale(2)*c-1)+1);
% assign value
outputI(i,j) = inputI(ii,jj);
end
end
figure(1), imshow(inputI)
figure(2), imshow(outputI)
क्षमा करें, पता नहीं है कि मैं क्या सोच रहा था - तुम उत्पादन से अधिक पुनरावृति करने की जरूरत है, नहीं इनपुट, क्योंकि आउटपुट बड़ा है। और उस मामले में मेरे सूत्रों को उलट करने की आवश्यकता होगी। –