Selecting specific region around the known indices of a matrix.

10 visualizaciones (últimos 30 días)
Hi,
I have a path around which I want to select 3 points above and 3 points below to acheive something similar to the picture. Basically I want to select the points that lie within 3 radius points. I have attached the MAT file which includes the indices locations around which I want to select points. It also has the matrix from which the figure can be ploted. Orginal matrix has the same dimensions. untitled.png

Respuesta aceptada

Thiago Henrique Gomes Lobato
Thiago Henrique Gomes Lobato el 3 de Nov. de 2019
Editada: Thiago Henrique Gomes Lobato el 3 de Nov. de 2019
You can dilate the image with a disk kernel and then take the difference to get the indexes:
A = load('matlab.mat');
h = fspecial('disk',3 ); % Disk element for dilatation
ADilatated = imdilate(A.crack,h); %
PointsAround = ADilatated-A.crack; % Difference to get the new points
IndexAroud = find(PointsAround~=0); % This is the array with the indexes around it
figure
subplot(1,3,1)
imshow(A.crack)
title('Original Image')
subplot(1,3,2)
imshow(ADilatated)
title('Dilated Image')
subplot(1,3,3)
imshow(PointsAround)
title('Points in a 3-pixel radius')
In case you don't want a disk (radius) but rather a horizontal/vertical line you can just change the kernel, some examples can be founded here https://de.mathworks.com/help/images/ref/imdilate.html
  7 comentarios
waqas
waqas el 4 de Nov. de 2019
Is it possible to give different h value from upper and lower region for disk? I mean taking a different value like [4,3] in fspecial ?
Thiago Henrique Gomes Lobato
Thiago Henrique Gomes Lobato el 4 de Nov. de 2019
Not in fspecial as far as I know, but you can achieve a similar effect using a radius 4 and then setting the first row from h to zero, like the example I gave you in the last comment. If I were to convert my example with your notation what I did would be a [3,1].

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Read, Write, and Modify Image en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by