how to segment hand from an image with non uniform lighting?
Ältere Kommentare anzeigen
I'm trying to segment the hand from the image but due to the non uniform lighting the result come out like this

the result in uniform lighting

how to solve this problem?
Akzeptierte Antwort
Weitere Antworten (3)
Laila Kazemi
am 12 Jul. 2014
0 Stimmen
You need adaptive threshold since the background changes. I have not yet found a good code in matlab for this. you might have to find your own algorithm and code it.
1 Kommentar
H
am 14 Jul. 2014
Prasad Kalane
am 14 Jul. 2014
0 Stimmen
% Do some image illumination correction.
background = imopen(I,strel('disk',15));
I = I - backgroundbackground
I = imadjust(I);
% level = graythresh(I);
bw = im2bw(I,0.3*level);
Milion Negewo
am 14 Nov. 2020
0 Stimmen
background = imopen(I,strel('disk',15));
I = I - backgroundbackground
I = imadjust(I);
% level = graythresh(I);
bw = im2bw(I,0.3*level);
1 Kommentar
Image Analyst
am 14 Nov. 2020
Here is your algorithm:
I = imread('hands.png');
% Display original image.
subplot(2, 3, 1);
imshow(I);
title('Original Image');
% Convert to gray scale so we can call imopen().
I = rgb2gray(I);
% Display original image.
subplot(2, 3, 2);
imshow(I);
title('Gray Scale Image');
background = imopen(I, strel('disk',15));
% Display image.
subplot(2, 3, 3);
imshow(background);
title('Background Image');
I = mat2gray(double(I) - double(background));
I = imadjust(I);
% Display image.
subplot(2, 3, 4);
imshow(I);
title('Background Subtracted Image');
level = graythresh(I);
bw = im2bw(I, 0.3*level);
% Display image.
subplot(2, 3, 5:6);
imshow(bw);
title('Final Binary Image');

The final image doesn't look so good. I think you need to work on it some more.
Kategorien
Mehr zu Image Segmentation finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!