how to give color for same pixel values?

i need to assign color for pixels having same value.. can anyone help me?

 Accepted Answer

cmap = copper(22); %some color map
outimg = ind2rgb( uint8(locatn), cmap);
image(outimg);

2 Comments

sir this coding works for simple 5x5 matrix. but it is not working for image..
sir can u help me to give different colors for different regions

Sign in to comment.

More Answers (1)

What do you mean by "pixels having the same value"? Do you mean, say, pixels having red color? And so you want to assign a green color to all pixels having "red" values? Meanwhile, why don't you look at my color segmentation demos in Image Analyst's awesome File Exchange?

8 Comments

my input :
I=[...
2 3 10 4 6;
1 4 7 5 3;
5 2 8 4 3;
8 2 1 7 3;
1 9 8 3 4];
% Location of max pixel around each pixel is given as
locatn =[...
7 11 12 11 17;
3 11 11 11 21;
4 4 12 13 19;
10 10 10 13 19;
10 4 10 15 19;]
now i have to given same color for same values in 'locatn' matrix.
Image Analyst
Image Analyst on 19 Oct 2013
Edited: Image Analyst on 19 Oct 2013
I don't understand what it means when you say the location is 17 or 19 or 21. In a 2D image, there are immediate 8 neighbors. So I could possibly see a 1-8 if you define where they are located (like 1 is the upper left neighbor and you go around clockwise so that 8 is the left neighbor), but you have at least 21 locations. Where are they?
I=[2 3 10 4 6; 1 4 7 5 3; 5 2 8 4 3;8 2 1 7 3;1 9 8 3 4;];
D = padarray(I,[1 1],0,'both');
s = size(I);
N = padarray(reshape(1:numel(I),s),[1 1],0,'both');
pt = [1 1 1;1 0 1;1 1 1] > 0;
s1 = s+2;
out = zeros(s);
for ii=2:s1(1)-1
for jj=2:s1(2)-1
D1 = D(ii-1:ii+1,jj-1:jj+1);
K = N(ii-1:ii+1,jj-1:jj+1);
K = K(pt);
[~,i0] = max(D1(pt));
out(ii-1,jj-1) = K(i0);
end
end
s=[5,5];
[R C]=ind2sub(s,out);
Sir i have attached the coding here.
The values in 'out' have the locations i have mentioned above.
But I still don't know what this uncommented code does. Can you tell me what a location of 21 means? Is it the linear index or something?
yes sir it is linear indexing
colormaps can only go up to 256 while linear indexes can far exceed that so you can't use a colormap. You'd have to create an RGB image from the linear index but I don't see how that would be meaningful. What you'll see is a gradient from upper left to lower right in color because, overall, that's how the linear indexes will go. How does that help?
sir can u help me convert RGB image from linear index.
I used ind2rgb function. but i didn't get the correct output

Sign in to comment.

Asked:

on 19 Oct 2013

Commented:

on 24 Oct 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!