MATLAB Answers


In two processed images, one shows 3 centroids and another shows 4 centroids. How to eliminate this extra centroids from centroids array.

Asked by Naseeb Gill on 24 Feb 2016
Latest activity Commented on by Naseeb Gill on 1 Mar 2016
I have two images taken from two stereo cameras in which one contain three white objects and another contain four white objects. I processed both images to find out the centroids. Ofcourse first one give three centroids and second give four centroids and I stored these centroids into arrays called 'centroids1' and 'centroids2'. Now, I want two things here. First, if in 'centroids1' first entry is for object 1, then in 'centroids2' also, first entry should be for object 1 only, likewise for all objects. Second, I want to eliminate any extra centroids present in any of 'centroids' array i.e. I want only corresponding centriods in both 'centroids1' and 'centroids2' array.
I'm attaching my images and code here.


Sign in to comment.

1 Answer

Answer by Dima Lisin
on 29 Feb 2016
 Accepted Answer

Hi Naseeb,
The triangulate function can return reprojection errors, which can tell you whether or not a match is correct.

  1 Comment

Thanks Dima, As you suggest triangulate function, using this clue I tried to solve my problem and I came out with this code. It works similar to as I want.
B = centroids1; % center of white objects from left cam
A = centroids2; % center of white objects from right cam
n = size(A,1);
m = size(B,1);
s = n-m;
if s >= 0
r = reprojectionErrors; % obtain from triangulate function
C = cat(2,B,r(:,1)); % for left image
D = cat(2,A,r(:,1)); % for right image
for j=1:size(C,1)
if (C(j,3)<3);
nA=[nA; C(j,:)];
for j=1:size(D,1)
if (D(j,3)<3);
nB=[nB; D(j,:)];
Suggest something if I missed or can be add in this. Also, I'm using triangulate function to find center of white objects,so suggest something regarding how to approach effectively please.

Sign in to comment.