В matlab, как нарисовать сетку над изображением

Как нарисовать сетку поверх изображения. Она должна стать частью этого образа. Он должен иметь возможность отображать некоторые строки и столбцы над самим изображением. Можно указать строки для строк и столбцов. На самом деле меня обнадежило то, как в какой-то исследовательской статье обсуждаются результаты, которые они имеют о искажении изображения. Одна из ссылок такова:http://www.hammerhead.com/thad/morph.html

3 ответов


существует ряд связанных вопросов, на которых обсуждаются способы изменения изображения. Вот два общих подхода:--3-->

1. Измените данные изображения напрямую: Я обсуждаю это в мой ответ на этот другой вопрос так. Так как данные изображения могут быть 2-D или 3-D, вы можете использовать многомерной индексации чтобы изменить необработанные данные изображения, создайте строки вдоль заданных строк и столбцов. Вот пример, который изменяет каждые 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. Постройте изображение и линии, затем превратите оси / фигуру в новое изображение: на ссылка на блог Стива Эддинса на zellus' ответ показывает пример того, как можно построить изображение и добавить к нему линии. Однако, если вы хотите сохранить или выполнить обработку на отображается image, вам нужно будет сохранить отображаемое изображение в виде матрицы изображений. Как вы можете это сделать, обсуждалось в этих других вопросах SO:


наложение линейных графиков на изображения из блога "Стив по обработке изображений" есть хороший пример наложения сетки на изображение.


на самом деле я смотрел после этого код на этот вопрос .... код считывает изображение и рисует сетку на изображении каждый входной параметр

Я надеюсь, что это принесет пользу:)

смотрите код 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