how extract Features at specific regions??

1 次查看(过去 30 天)
Hi
i tray to extract features to detect people but it got more than one points each person i tray to use imgradientimgradient to get edge of each persons but how??
i need help
[Gx,Gy] = imgradientxy(imca);
[Gmag, Gdir] = imgradient(imca,'central');
%Gmag_normalized = Gmag / 8;
%figure
% imshow(Gmag_normalized );
%F = fft(Gmag);figure;imshow(F),title('fft');%%%%%or use imgradient
figure,imshowpair(Gmag, Gdir, 'montage');
[reg1,dd] = detectMSERFeatures(imca,'RegionAreaRange',[3 ,3]);
%[reg1,dd] = detectMSERFeatures(rgb2gray(I),'RegionAreaRange' ,[3 3]);
[features2, valid_point] = extractFeatures(rgb2gray(I),reg1);
res11.jpg
imgradient.png

回答(1 个)

Subhadeep Koley
Subhadeep Koley 2019-11-1
It is very difficult to extract only one MSER feature per person in your image. But tweaking the parameters
'RegionAreaRange', and 'ThresholdDelta' you can get very close. Refer to the example below.
I = imread('people1.jpg');
I = rgb2gray(I);
regions = detectMSERFeatures(I,'RegionAreaRange',[3 3],'ThresholdDelta',2);
figure; imshow(I);
hold on;
plot(regions,'showEllipses',false);
[features2, valid_point] = extractFeatures(I,regions);
MSERfeatures.png
Hope this helps!

Community Treasure Hunt

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

Start Hunting!

Translated by