2016-11-29 8 views
1

비디오 프레임에서 일련의 SURF 포인트를 모으고이 좌표 포인트를 필터링 한 후 자신의 것으로 다시 변환하고 싶습니다. 형태. 당신은 내가 쓴 코드를 볼 수 있습니다 가 :DetectSURFfeatures 필터링 및 MATLAB

surfpoints_raw_single_column_matrix = detectSURFFeatures(img); 
raw_points_double_column_matrix = SURFPoints(Location); 
s=1; 
for a=1:size(raw_points_double_column_matrix,1) 
    i=raw_points_double_column_matrix(a,1); 
    j=raw_points_double_column_matrix(a,2); 
if ((i>156-9-70 && i<156+9+70) && (j>406-9-70 && j<406+9+70)) 
matrix_filtered(s,1)=i; 
matrix_filtered(s,2)=j; 
s=s+1; %filtered matrix index counter 
end 
end 
???? = matrix_filtered; 
% Conversion back to the type of surfpoints_raw_single_column_matrix 

내가 필요로하는 것은 (아직 선택 X를 유지하고 y는 쌍으로 조정하는 24x1 매트릭스에 (예) 24 번 24 * 행렬을 변환하는 것입니다 [X , y]). 미리 감사드립니다 ...

+0

안녕 :

따라서, 당신이해야 할 것은 다음과 같다! [mcve]를 추가하면 코드를 테스트 할 수 있습니다. 그러나 나는 당신이 원하는 것을 이해하고 있습니다. 서핑 기능은 일부 SURF 값을 갖는 픽셀의 특정 'x, y'좌표를 제공합니다. 여기서 어떤 변화가 일어나고 있습니까? –

답변

1

해당 접근법의 문제는 점 당 SURF 설명자와 함께 제공되는 모든 정보가 손실된다는 것입니다. 척도, 각 점에서의 라 플라 시안 부호, 방향 등과 같은 정보를 잃어 버리게됩니다. 공간 위치 만보고있는 것입니다.

대신 logical 인덱싱을 사용하고 싶지 않은 SURFPoints 구조 배열의 모든 점을 제거하십시오. 원시 좌표도 올바르게 가져 오지 못합니다. SURFPoints에는 감지 된 기능의 공간적 위치가 Location이라는 필드에 포함되어 있는데 이는 두 번째 코드 줄에서 수행하려고 시도했지만 정확하지는 않습니다.

% Your code 
surfpoints_raw_single_column_matrix = detectSURFFeatures(img); 

% Corrected 
raw_points_double_column_matrix = surfpoints_raw_single_column_matrix.Location; 

% New - Get X and Y coordinates 
X = raw_points_double_column_matrix(:,1); 
Y = raw_points_double_column_matrix(:,2); 

% New - Determine a mask to grab the points we want 
ind = (X>156-9-70 & X<156+9+70) & (Y>406-9-70 & Y<406+9+70); 

% New - Create new SURFPoints structure that contains all information 
% from the points we need 
matrix_filtered = surfpoints_raw_single_column_matrix(ind); 
+1

많은 도움을 주셔서 감사합니다. 나는 내가 서핑 명령을 (ind) additon으로 조종 할 수 있다는 것을조차 몰랐다. –

+0

@CanDemir ah :) 논리적 인덱싱은 MATLAB 스테이플입니다. 'detectSURFFeatures'에 의해 반환되는 것은 구조체 배열이기 때문에 MATLAB의 다른 행렬이나 배열과 마찬가지로 색인을 생성 할 수 있습니다. 여기에서 논리적 인덱싱은 각 특징 지점의 모든 특성을 유지하기 때문에 중요합니다. 공간 위치 만 복사하면 SURF를 특별하게 만드는 중요한 정보가 모두 손실됩니다. BTW, 당신은 매우 환영 받고 행운입니다! – rayryeng

+0

@CanDemir 우회로로 나는 색인 생성에 대해 토론 할 때이 게시물을 적극 추천합니다 : http://stackoverflow.com/questions/32379805/linear-indexing-logical-indexing-and-all-that - 디테일뿐만 아니라 할아버지 인 선형 인덱싱을 제공합니다. – rayryeng