Code covered by the BSD License  

Highlights from
detecting blue region

image thumbnail
from detecting blue region by Tarmizi Mohamad
this coding indicate to select the blue region in an image

blueSegment =blueSegment(I,handles)
function blueSegment =blueSegment(I,handles)

blueSegment=I;
cform = makecform('srgb2lab');
lab_he = applycform(blueSegment,cform);

ab = double(lab_he(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
ab = reshape(ab,nrows*ncols,2);

nColors = 3;
% repeat the clustering 3 times to avoid local minima
[cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean', ...
                                      'Replicates',1);
                                  
pixel_labels = reshape(cluster_idx,nrows,ncols);


mean_cluster_value = mean(cluster_center,2);
[~, idx] = sort(mean_cluster_value);
blue_cluster_num = idx(1);

L = lab_he(:,:,1);
blue_idx = find(pixel_labels == blue_cluster_num);
L_blue = L(blue_idx);
is_light_blue = im2bw(L_blue,graythresh(L_blue));
nuclei_labels = repmat(uint8(0),[nrows ncols]);
nuclei_labels(blue_idx(is_light_blue==false)) = 1;
nuclei_labels = repmat(nuclei_labels,[1 1 3]);
blue_nuclei = blueSegment;
blue_nuclei(nuclei_labels ~= 1) = 0;


axes(handles);

imshow(blue_nuclei);

Contact us