В 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
и теперь данные изображения в переменной 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