MATLAB: How to quantify multicolor images

image enhancementImage Processing Toolbox

I have to quantify this attached multi-color image. This image (Picture1.png)is an outcome of (Matlab enhanced from Picture4.png) dermascopic image from a broad band light of a microscope. I want to get numbers out of it. Such as what percentage of the signal is red, pink or yellow or green or blue. I basically need free-hand ROI and get Red signal intensity for example). Can you please help me out with this? Thanks Surya

Best Answer

  • Here's a solution
    img = imread('Picture1.png');
    imh = imshow(img);
    % Create a mask using freehand ROI
    h = imfreehand;
    m = createMask(h, imh);
    % Extract individual color channels
    r = img(:,:,1);
    g = img(:,:,2);
    b = img(:,:,3);
    % Get sum of intensity of each channel
    r_s = sum(r(m));
    g_s = sum(g(m));
    b_s = sum(b(m));
    % Calculate percentage of intensity of each color
    r_p = r_s / (r_s + g_s + b_s) * 100;
    g_p = g_s / (r_s + g_s + b_s) * 100;
    b_p = b_s / (r_s + g_s + b_s) * 100;