0

在正常情况下,当我使用时,

l = imread('football.jpg');

首先,我将颜色带分开

i = l(:,:,1);
j = l(:,:,2);
k = l(:,:,3);

然后我把它们贴回去。

im(:,:,1) = i;
im(:,:,2) = j;
im(:,:,3) = k;
imtool(im);

这给了我一个正常的 rgb 图像,每个像素位置显示像素值。

现在我的目标是放大 rgb 图像,也就是缩放它。所以我首先将波段与 rgb 图像分开。我使用与上述相同的过程对像素进行“缩放”,然后将它们附加回去。但是,这一次当我调用 imtool(im) 时,我看不到像素的值。我只有白色放大的图像。在图像底部设置的像素信息0 1在格式的范围内[ r b g]。有没有办法增加这个范围。只是要注意,当我使用单个波段而不是 3 个波段一起使用imtool(im , [ 0 255 ] )时,我会看到一张非常漂亮的缩小图片。当我将 3 个频段一起使用时,我只是不知道如何使用相同的想法。

编辑:只是为了说清楚:

   im(:,:,1) = sampleUp(i,p);
   %im(:,:,2) = sampleUp(j,p);
   %im(:,:,3) = sampleUp(k,p);

   imshow(im,[0 255]);( in octave) 

   imtool(im ,[0 255]);(in matlab)

上面的代码非常适合显示放大的灰度图像,而不是 rgb 图像。我知道我在这里遗漏了一些基本的东西。我会很高兴,如果有人能弄清楚我,

4

2 回答 2

0

您是否考虑过将 imresize 与最近邻插值一起使用?

I = imread('rice.png');
J = imresize(I, 2, 'nearest');
figure, imshow(I), figure, imshow(J)

http://www.mathworks.com/help/images/ref/imresize.html

于 2013-06-17T13:59:32.833 回答
0

重新调整显示范围。

imshow(image,[min(min(mean)),max(max(mean))]);
于 2016-11-03T11:22:52.080 回答