2010-11-15 14 views
6

किसी छवि पर ग्रिड कैसे आकर्षित करें। यह उस छवि का हिस्सा बनना चाहिए। यह छवि पर कुछ पंक्तियों और स्तंभों को दिखाने में सक्षम होना चाहिए। पंक्तियों और स्तंभों के लिए रेखाएं निर्दिष्ट की जा सकती हैं। असल में मुझे कुछ शोध पत्र जिस तरह से छवि युद्ध के बारे में उनके परिणामों के बारे में चर्चा करता है, उससे प्रोत्साहित किया गया था। लिंक में से एक यह है: http://www.hammerhead.com/thad/morph.htmlमैटलैब में, छवि पर ग्रिड कैसे खींचे

उत्तर

10

एसओ पर कई संबंधित प्रश्न हैं जो छवि को संशोधित करने के तरीकों पर चर्चा करते हैं। यहां दो सामान्य दृष्टिकोण दिए गए हैं:

1. छवि डेटा को सीधे संशोधित करें: मैं my answer to this other SO question में इस पर चर्चा करता हूं। चूंकि छवि डेटा 2-D or 3-D हो सकता है, इसलिए आप कच्चे छवि डेटा को संशोधित करने के लिए multidimensional indexing का उपयोग कर सकते हैं, पंक्तियों और स्तंभों के साथ लाइनें बना सकते हैं। यहाँ एक उदाहरण है कि काला करने के लिए हर 10 पंक्तियों और छवि में कॉलम में परिवर्तन है:

img = imread('peppers.png'); %# Load a sample 3-D RGB image 
img(10:10:end,:,:) = 0;  %# Change every tenth row to black 
img(:,10:10:end,:) = 0;  %# Change every tenth column to black 
imshow(img);     %# Display the image 

alt text

और अब चर img में छवि डेटा उस पर काले लाइनों है, और आप एक के लिए लिख सकते हैं फाइल करें या जो भी प्रसंस्करण आप चाहते हैं उसे करें।

2. प्लॉट छवि और लाइनों, तो एक नई छवि में कुल्हाड़ियों/आंकड़ा बारी:link to Steve Eddins' blogzellus' answer में कैसे आप एक छवि साजिश और इसे करने के लिए लाइनों में जोड़ सकते हैं का एक उदाहरण दिखाता। हालांकि, अगर आप पर प्रसंस्करण को सहेजना या निष्पादित करना चाहते हैं तो छवि प्रदर्शित की गई है, तो आपको प्रदर्शित छवि को छवि मैट्रिक्स के रूप में सहेजना होगा। आप यह कैसे कर सकते इन अन्य अतः सवालों में चर्चा की गई है:

+1

मुझे 'छवि डेटा को सीधे संशोधित करें' में उदाहरण कोड महसूस हुआ थोड़ा सा आसान था। खंड '2. छवि और रेखा को प्लॉट करें ...' भी मददगार था। –

3

Superimposing line plots on images ब्लॉग 'स्टीव ऑन इमेज प्रोसेसिंग' से छवि पर एक ग्रिड ओवरले करने पर एक अच्छा उदाहरण है।

+0

धन्यवाद, यह मैंने देखा सबसे सरल उदाहरण था। –

1

असल में मैं अपने खुद के द्वारा इस कोड को करने के बाद यह सवाल देखा .... कोड पढ़ता एक छवि और हर इनपुट पैरामीटर

मुझे आशा है कि यह करना होगा किसी भी अच्छे :)

घड़ी matlab छवि पर ग्रिड आकर्षित कोड:

function [ imageMatdouble ] = GridPicture(PictureName , countForEachStep) 
%This function grid the image into counts grid 
pictureInfo = imfinfo(PictureName);  %load information about the input 

[inputImageMat, inputImageMap] = imread(PictureName);  % Load the image  

if (pictureInfo.ColorType~='truecolor') 
    warning('The function works only with RGB (TrueColor) picture'); 
    return 
end 

%1. convert from trueColor(RGB) to intensity (grayscale) 
imageMat = rgb2gray(inputImageMat); 

%2. Convert image to double precision. 
imageMatdouble =im2double(imageMat); 

% zero is create indicated to black 
height = pictureInfo.Height ; 
width = pictureInfo.Width 
    i=1;j=1; 
while (i<=height) 
    for j=1:width 
     imageMatdouble(i,j)=1; 
    end 
    j=1; 
    if (i==1) 
     i=i+countForEachStep-1; 
    else 
     i=i+countForEachStep; 
    end 
    end 


    i=1;j=1; 
    while (i<=width) 
    for j=1:height 
     imageMatdouble(j,i)=1; 
    end 
    j=1; 
    if (i==1) 
     i=i+countForEachStep-1; 
    else 
     i=i+countForEachStep; 
    end 

end 

imwrite(imageMatdouble,'C:\Users\Shahar\Documents\MATLAB\OutputPicture.jpg') 



end 
संबंधित मुद्दे