In matlab, how to draw a grid over an image

前端 未结 3 1412
时光取名叫无心
时光取名叫无心 2020-12-10 16:12

How to draw a grid over an image. It should become part of that image itself. It should be able to show some rows and columns over the image itself. The lines for rows and c

相关标签:
3条回答
  • 2020-12-10 16:41

    Actually I watched this question after doing this code by my own .... the code reads an image and draw grid on the image every input parameter

    I hope it would do any good :)

    Watch the matlab code :

    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
    
    0 讨论(0)
  • 2020-12-10 16:54

    Superimposing line plots on images from the blog 'Steve on Image Processing' has a nice example on overlaying a grid over an image.

    0 讨论(0)
  • 2020-12-10 17:00

    There are a number of related questions on SO that discuss ways to modify an image. Here are the two general approaches:

    1. Modify the image data directly: I discuss this in my answer to this other SO question. Since image data can be 2-D or 3-D, you can use multidimensional indexing to modify the raw image data, creating lines along given rows and columns. Here's an example that changes every 10 rows and columns in the image to black:

    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

    And now the image data in the variable img has black lines on it, and you can write it to a file or do whatever other processing you want to it.

    2. Plot the image and the lines, then turn the axes/figure into a new image: The link to Steve Eddins' blog in zellus' answer shows an example of how you can plot an image and add lines to it. However, if you want to save or perform processing on the displayed image, you will have to save the displayed image as an image matrix. How you can do this has been discussed in these other SO questions:

    • How can I save an altered image in MATLAB?
    • Turn Matlab plot into image
    0 讨论(0)
提交回复
热议问题