How to remove/eliminate the background outside the red boundingbox in the picture below?i just need inside the red boundingbox only.
2 次查看(过去 30 天)
显示 更早的评论
boxPoints = detectSURFFeatures(boxImage1); scenePoints = detectSURFFeatures(sceneImage1);
hold on; plot(selectStrongest(scenePoints, 300));
%% Step 3: Extract Feature Descriptors % Extract feature descriptors at the interest points in both images.
[boxFeatures, boxPoints] = extractFeatures(boxImage1, boxPoints); [sceneFeatures, scenePoints ] = extractFeatures(sceneImage1, scenePoints);
%% Step 4: Find Putative Point Matches % Match the features using their descriptors.
boxPairs = matchFeatures(boxFeatures, sceneFeatures);
% Display putatively matched features.
matchedBoxPoints = boxPoints(boxPairs(:, 1), :); matchedScenePoints = scenePoints(boxPairs(:, 2), :); %figure(8); showMatchedFeatures(boxImage1, sceneImage1, matchedBoxPoints, matchedScenePoints, 'montage'); legend('matched Boxpoints 1','matched Scenepoints 2'); title('Putatively Matched Points (Including Outliers)');
%% Step 5: Locate the Object in the Scene Using Putative Matches % estimateGeometricTransform calculates the transformation relating the % matched points, while eliminating outliers. This transformation allows us % to localize the object in the scene.
[tform, inlierBoxPoints, inlierScenePoints] = estimateGeometricTransform(matchedBoxPoints, matchedScenePoints, 'similarity'); %figure(9);
% Display the matching point pairs with the outliers removed
showMatchedFeatures(boxImage1, sceneImage1, inlierBoxPoints, inlierScenePoints, 'montage'); title('Matched Points (Inliers Only)');
% Get the bounding polygon of the reference image.
boxPolygon = [1, 1;... % top-left size(boxImage1, 2), 1;... % top-right size(boxImage1, 2), size(boxImage1, 1);... % bottom-right 1, size(boxImage1, 1);... % bottom-left 1, 1]; % top-left again to close the polygon
% Transform the polygon into the coordinate system of the target image. % The transformed polygon indicates the location of the object in the % scene.
newBoxPolygon = transformPointsForward(tform, boxPolygon);
% Display the detected object.
figure(10); imshow(sceneImage1); hold on; line(newBoxPolygon(:, 1), newBoxPolygon(:, 2), 'Color', 'r'); title('Detected Box');
0 个评论
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Feature Detection and Extraction 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!