what are suitable texture features for these images
Ältere Kommentare anzeigen
dear i have these images and i want to recognition between them based on texture features [density of yellow color]
can any one suggest for me a single value texture feature ??


Antworten (1)
Image Analyst
am 22 Mär. 2014
Bearbeitet: Image Analyst
am 22 Mär. 2014
0 Stimmen
First of all, you need to use crossed polarizers to get rid of the white specular reflections.
Next, I don't see how "density of yellow" is a texture feature. It's more of a color/intensity/radiometric quantity since it's the wavelength/spectrum of light rather than a spatial variation.
What I'd probably do for a start is to compute two classes: reddish, and yellowish/greenish. Look at the color gamut in HSV color space, looking down along the V axis:

You can see how the yellowish/greenish pixels are separated from the reddish/purplish pixels. I'd calculate the total number of pixels for each color class as well as the area fraction for each color class. I'd also give the mean LAB color of each, and if you have a "true/nominal/reference" color then I'd give the delta E (the "color difference" between the actual object and it's reference color. See my delta E demo in my File Exchange. Also, see my "Color detection by hue" full demo in my File Exchange: http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862
9 Kommentare
mangood UK
am 22 Mär. 2014
Image Analyst
am 22 Mär. 2014
You're welcome. If you do want to measure texture, then take an image, such as the "v" channel of the HSV image, and run entropyfilt() or stdfilt() on it. Areas with high variation will be bright and smooth areas will be dark. You can segment areas based on their texture and give the mean texture in those areas. For example you could use color segmentation to find green and red areas, and then combine that with thresholded texture images to find textured green, smooth green, textured red, and smooth red regions.
mangood UK
am 22 Mär. 2014
Image Analyst
am 22 Mär. 2014
Something like
hsv = rgb2hsv(rgbImage);
v = hsv(:,:,3);
textureImage = stdfilt(v);
highTexture = textureImage > 3; % or whatever number you pick.
pixelsInHighTextureRegions = v(highTexture);
meanOfPixelsInHighTextureRegions = mean(pixelsInHighTextureRegions);
and so on....
mangood UK
am 22 Mär. 2014
Bearbeitet: mangood UK
am 22 Mär. 2014
Image Analyst
am 22 Mär. 2014
You could get two binary images. One where you segmented based on hue or saturation or something and one where you did it based on texture. Then to get pixels that are both red and smooth you AND the images
smoothTexturePixels = textureImage < 3; % or whatever.
redPixels = (h < 0.3 | h > 0.9) & (s > 0.2); % or whatever.
% Now AND
bothRedAndSmooth = redPixels & smoothTexturePixels;
Similar for other colors and textures.
mangood UK
am 22 Mär. 2014
Bearbeitet: mangood UK
am 22 Mär. 2014
Image Analyst
am 22 Mär. 2014
OK. I prefer to remain anonymous, though some people know who I am (like people at the Mathworks and some others). If it works after you test it, then please mark my Answer as "Accepted."
mangood UK
am 22 Mär. 2014
Bearbeitet: mangood UK
am 22 Mär. 2014
Kategorien
Mehr zu Texture Analysis 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!