I want to calculate the color features of soap only for that i mask BW ROI on an RGB soap image , i did the following code but the values are different when i calculate the color features by cropping only the soap image (without the background)? Hlp
 
clear all clear RGB=imread('soap170.jpg'); I=rgb2gray(RGB); % Step 2: Create a Binary Image
level=graythresh(I); BWgth = im2bw(I,level); maskThreeChannel = repmat(BWgth , [1, 1, 3]); RGB2=RGB; RGB2(~maskThreeChannel)=0; figure,imshow(RGB2); title('masked RGB')R = double(RGB2(:, :, 1));G = double(RGB2(:, :, 2));B = double(RGB2(:, :, 3));% compute 3 first color moments from each channel
meanR = mean( R(:) );stdR = std( R(:) );skewnessR = skewness(R(:));meanG = mean( G(:) );stdG = std( G(:) );skewnessG = skewness(G(:));meanB = mean( B(:) );stdB = std( B(:) );skewnessB = skewness(B(:));% construct output vector
colorMoments = zeros(1, 9);colorMoments(1, :) = [meanR stdR skewnessR meanG stdG skewnessG meanB stdB skewnessB]
Best Answer