为什么我无法控制 imshow 中颜色分量的强度?

发布于 2024-10-24 01:18:42 字数 346 浏览 4 评论 0原文

我有以下代码:

red = [1 255 0; 0 0 0; 0 0 0];
green = [0 0 0; 0 0 0; 0 0 0];
blue = [0 0 0; 0 0 0; 0 0 0];
figure,imshow(cat(3,red,green,blue))

根据我的“直觉”理解,图像的第一个像素的颜色应具有以下 rgb 分量:(1,0,0),而第二个像素应具有以下分量:(255, 0,0)(当我说“第一”和“第二”时,我指的是文本顺序:从左到右,从上到下)。

换句话说,第一个像素应该几乎完全是黑色,而第二个像素应该是红色。然而,两个像素看起来都是红色的。我在这里缺少什么?

I have the following code:

red = [1 255 0; 0 0 0; 0 0 0];
green = [0 0 0; 0 0 0; 0 0 0];
blue = [0 0 0; 0 0 0; 0 0 0];
figure,imshow(cat(3,red,green,blue))

According to my "intuitive" understanding the color of the first pixel of the image should have the following rgb components: (1,0,0), while the second pixel should have the following components: (255,0,0) (when I say the "first" and "second" I mean the text order: from left to right, from top to bottom).

In other words the first pixel should be almost absolutely black while the second one should be red. However, the both pixels look perfectly red. What am I missing here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

╰◇生如夏花灿烂 2024-10-31 01:18:42

我不是专家,但我认为这是因为您将双打传递给 imshow 。你可以尝试

imshow(uint8(cat(3, red, green, blue)))

I'm no expert, but I think it's because you're passing doubles to imshow. You could try

imshow(uint8(cat(3, red, green, blue)))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文