2015-03-25 2 views
0

MATLAB У меня есть этот сюжет, который я сделал с помощью contourf enter image description hereВычисление площади с regionprops

Это микроскопическая картина, где я пытаюсь получить ориентацию каждого слоя. Я сделал colormap, где у меня есть постоянный цвет для каждых 10 градусов. Поэтому в основном я вроде бы предполагаю, что постоянный цвет соответствует постоянному слою. Теперь я хотел бы рассчитать площадь каждого слоя. Я не знаю, как это сделать. Итак, сначала я хочу попросить Matlab сказать мне, что область для 0 до 10 градусов - XX (в пикселе^2). Но, во-вторых, я хочу указать один слой. потому что есть несколько областей от 0 до 10, но я хочу знать область каждого из них.

Знаете ли вы, если это возможно? Приветствия D

EDIT Так я использовал ваше предложение, и я получаю что-то вроде этого Ok, так что я сделал это, с одной картины и как я получаю это, например

R = 

    Columns 1 through 3 

    [32x1 struct] [450x1 struct] [1110x1 struct] 

    Columns 4 through 6 

    [1978x1 struct] [2778x1 struct] [3392x1 struct] 

    Columns 7 through 9 

    [5249x1 struct] [8215x1 struct] [15711x1 struct] 

    Columns 10 through 12 

    [12019x1 struct] [5335x1 struct] [2643x1 struct] 

    Columns 13 through 15 

    [1804x1 struct] [1018x1 struct] [670x1 struct] 

    Columns 16 through 18 

    [579x1 struct] [344x1 struct] [50x1 struct] 

Я хочу быть в состоянии получить что-то вроде этого (от MatLab помощи), но и для области

stats = 

     Centroid  MajorAxisLength MinorAxisLength 
    ________________ _______________ _______________ 

    256.5  256.5 834.46    834.46   
     300  120 81.759    81.759   
    330.47 369.83 111.78    110.36   
     450  240 101.72    101.72   

Также я видел на MATLAB вы можете Replot вокруг регионов, как здесь Получить центры и радиусы окружностей.

centers = stats.Centroid; 
diameters = mean([stats.MajorAxisLength stats.MinorAxisLength],2); 
radii = diameters/2; 
Plot the circles. 

hold on 
viscircles(centers,radii); 
hold off 

и они идут от этого образа в том, что: enter image description here enter image description here

Я бы очень хотел, чтобы сделать это, а также для каждого региона.

ответ

0

contourf предназначено для отображения, и, на мой взгляд, это не лучшее решение для вашей проблемы. Вот решение, основанное на regionprops (от Image Processing Toolbox):

Пусть A содержит исходный массив/изображение

angs = -90:10:90; 

for i = 1:numel(angs)-1 

    BW = A>=angs(i) & A<angs(i+1); 

    R{i} = regionprops(BW, 'Area'); 

end 

Для каждого интервала R{i} будет содержать структуру, как многие элементы как отдельные области и поле Area, в количестве пикселей.

Надеюсь, это поможет,

+0

Хорошо спасибо, я попробую это и посмотрю, как это работает. –

+0

Хорошо, таким образом я сделал это, с одной картины и, как я получить это, например R = Столбцы с 1 по 3 [32x1 структуры] [450x1 структура] [1110x1 структура] Колонны с 4 по 6 [1978x1 структура] [2778x1 структура] [3392x1 структура] Колонны с 7 по 9 [5249x1 структура] [8215x1 структура] [15711x1 структура] Столбцы с 10 по 12 [12019x1 структура] [5335x1 структура] [2643x1 структура] Столбцы с 13 по 15 [1804x1 структура] [1018x1 структура] [670x1 структура] Столбцы с 16 по 18 [579x1 структура] [344x1 структура] [50x1 структура] –

Смежные вопросы