I am trying to calculate the lengt of different lines in one image all labeled, i used the code below in order to obtain the figure below, but i want to know what amount of pixels are horizontal, vertical and diagonal (eg. in this picture 5 diagonal and 1 vertical).
Is there a way to get this data?
imagesc(bwmorph(I_temp,'skel'))

 Akzeptierte Antwort

KSSV
KSSV am 29 Jan. 2019
Bearbeitet: KSSV am 29 Jan. 2019

1 Stimme

[a,b]=hist(I_temp(:),unique(I_temp(:)))

2 Kommentare

Bart Smulders
Bart Smulders am 29 Jan. 2019
this just gives me a value of a=1 and b=1, am i doing something wrong in my code?
clear all; clc;
cur_dir = 'C:\RESULTS';
I = double(imread([cur_dir '\proccesed\424.bmp']));
BW = logical(I);
L = bwlabel(BW,4);
Data = regionprops(L,'All');
stats = regionprops('table',L,'BoundingBox','area');
area_values = [stats.Area];
idx = find((10 <=area_values) & (area_values <= 2000));
h=ismember(L, idx);
I_temp = Data(1).Image;
imagesc(I_temp);
imagesc(bwmorph(I_temp,'skel'))
[a,b]=hist(I_temp,unique(I_temp))
KSSV
KSSV am 29 Jan. 2019
Use I_temp(:)..edited the code.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Gefragt:

am 29 Jan. 2019

Kommentiert:

am 29 Jan. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by