Take coordinate data from struct, throw it into an array. Why is this hard to find info about?
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi,
I'm working on an image processing program that takes coordinate data of objects in an image acquired via the command regionprops and throws it into an array (that I will grab with a C program).
I'm having no issue sorting singular values into an array, but I am failing to put the coordinate data into one, which looks like [x,y].
code snippet:
blobMeasurements = regionprops(labeledImage, i, 'all'); %labeledImage has object information
numberOfBlobs = size(blobMeasurements, 1);
Centroid = size(blobMeasurements, ???);
g = 1;
n = 1;
for n = 1:97
if (blobMeasurements(n).Area > 500)
Centroid(g) = blobMeasurements(n).Centroid;
g = g + 1;
end
end
All I need is a simple set of lines that can achieve this. For the record, this isn't a homework assignment.
댓글 수: 0
채택된 답변
Ashish Uthama
2015년 2월 17일
편집: Ashish Uthama
2015년 2월 17일
Does this help? (If not, use this example code to show how you want your Centriod variable to look like)
stats = regionprops(im2bw(imread('coins.png')),'all');
%%Indices of 'larger' areas
% The key here is using [] to capture the output of stats.Area into an
% array.
inds = [stats.Area]>1000;
%%Centroids, using logical indexing
% This gives you the data in [x1 y1 x2 y2 ....] format
centroids = [stats(inds).Centroid];
[EDIT - add table syntax] With the latest version, regionprops now supports tables, making it even more easier:
stats = regionprops('table',im2bw(imread('coins.png')),'all');
inds = stats.Area>100;
centroids = stats.Centroid(inds,:);
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Encryption / Cryptography에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!