How to figure a colour based on a matrice of 1-by-3
1 次查看(过去 30 天)
显示 更早的评论
This is my code:
%%In this part we just find the coordinates of the required colours
im = imread('Lighthouse.jpg');
n = 4;
figure, imshow(im)
[x,y] = ginput(n);
x = floor(x);
y = floor(y);
%colour(length(x),3);
for i=1:length(x)
for j=1:3
colour(i,j) = im(y(i),x(i),j);
end
end
image(colour)
when I run it, and slect a point on the image it doesn't show me the colour I selected!! it figures a red colour!! why is that? the variable colour is [195,213,223]
how can I visualize that RGB colour?
0 个评论
采纳的回答
Image Analyst
2011-10-20
Well you messed up in a couple of places. Try this:
im = imread('peppers.png');
n = 4;
figure, imshow(im)
[x,y] = ginput(n);
x = floor(x);
y = floor(y);
%colour(length(x),3);
colour = zeros(length(x), 1, 3, 'uint8');
for i=1:length(x)
for j=1:3
colour(i,1, j) = im(y(i),x(i),j);
end
end
image(colour)
更多回答(2 个)
the cyclist
2011-10-20
Divide by 255. MATLAB uses the convention of RGB values from (0,1). This was discussed on this forum a few weeks ago, but for some reason I can't find it.
Walter Roberson
2011-10-20
Before the loop, initialize
colour = zeros(length(x),3, 'uint8');
You will then not need to do the division by 255 that The Cyclist refers to.
2 个评论
Walter Roberson
2011-10-20
You are selecting 4 points so you should be getting 4 colors.
You need to check whether your file is RGB (truecolor) or an indexed image (2D but you have to read in the colormap as well.)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Convert Image Type 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!