how extract Features at specific regions??

2 次查看(过去 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!

类别

Help CenterFile Exchange 中查找有关 Image Segmentation and Analysis 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by