4-neighbourhood - Where did those values come from?

2 visualizaciones (últimos 30 días)
med-sweng
med-sweng el 24 de Feb. de 2013
Say we have the following matrix `x`:
>> x = [1 4 3; 6 4 3; 6 9 3; 2 4 3; 5 4 0; 5 3 1; 6 4 7]
x =
1 4 3
6 4 3
6 9 3
2 4 3
5 4 0
5 3 1
6 4 7
Now, when I select the `4-neighbourhoods` of each pixel as follows:
EDU>> four_neighbourhood_pixels = imdilate(x, strel('diamond', 1))
four_neighbourhood_pixels =
6 4 4
6 9 4
9 9 9
6 9 4
5 5 4
6 5 7
6 7 7
the results are understandable.
But, when I make a change to which neighbors to retrieve, such that, I want those neighbors that are *not* in `x` as follows:
>> four_neighbourhood_pixels = imdilate(x, strel('diamond', 1)) -x
four_neighbourhood_pixels =
5 0 1
0 5 1
3 0 6
4 5 1
0 1 4
1 2 6
0 3 0
The results I get are a bit confusing. For example, where did `5`, `0`, `1` come from? How were they calculated?
Thanks.

Respuestas (2)

Walter Roberson
Walter Roberson el 24 de Feb. de 2013
[6 4 4] - [1 4 3] = [5 0 1]
so if you understand the original matrix and understand where the 4-connected values come from, you should understand the subtraction.

Image Analyst
Image Analyst el 24 de Feb. de 2013
imdilate() does not "select the `4-neighbourhoods` of each pixel". imdilate() is the local maximum in a window. Since your structuring element is a diamond with radius 1, that means it is a cross 3 pixels high and 3 pixels wide. So look at those pixels when figuring out what the local max is. Then the subtraction is just a normal subtraction.
I don't know what " I want those neighbors that are not in `x` " means. Do you mean the 4 corners? That is, those pixels not in the 4-connected structuring element? If so, I don't know why you're subtracting the original matrix from the dilated (local max) matrix. Please describe exactly what "i want" means when you're referring to multiple pixels. Let's say at some particular location, that you have 4 neighbor values (how you get them I still don't know). Now, you have 4 pixels for every pixel in the image. So how do you want those values returned to you? Do you want a 3D image (N rows by M columns by 4)?

Categorías

Más información sobre Image Processing Toolbox en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by