查看: 7574|回复: 4|关注: 0

[已解决] matlab该怎么画灰色色块?

[复制链接]

新手

6 麦片

财富积分


050


10

主题

32

帖子

0

最佳答案
  • 关注者: 1
我需要画灰色色块,使用RGB数据不是Lab数据,但是无论用imshow显示出来的还是imwrite保存后用ps显示的都是白色的,经过试验发现,只要值大于0都默认为255保存,请问我要如何做,比如我就做一个500×500的灰色块,我是这样写的
  1. I=zeros(500,500,3);
  2. I(:,:,1)=128;
  3. I(:,:,2)=128;
  4. I(:,:,3)=128;
  5. imwrite(I,'gray.tif')
复制代码
请赐教



MATLAB 基础讨论
版块优秀回答者

退役版主

2501 麦片

财富积分



11

主题

2769

帖子

276

最佳答案
  • 关注者: 201
发表于 2014-3-8 10:06:30 | 显示全部楼层 |此回复为最佳答案
两种方案
1. 保持现有代码不动,但是在保存前加一句 I = uint8(I); 或者
2. 将所有的128都改为0.5.

新手

6 麦片

财富积分


050


10

主题

32

帖子

0

最佳答案
  • 关注者: 1
 楼主| 发表于 2014-3-8 10:09:22 | 显示全部楼层
stellari 发表于 2014-3-8 10:06
两种方案
1. 保持现有代码不动,但是在保存前加一句 I = uint8(I); 或者
2. 将所有的128都改为0.5. ...

谢谢,成功了,但是为什么呢,默认是double类型的吧,为什么就不可以呢

论坛优秀回答者

专家

2131 麦片

财富积分


20003000


6

主题

9403

帖子

452

最佳答案
QQ
  • 关注者: 363
发表于 2014-3-8 10:41:46 | 显示全部楼层
303256567 发表于 2014-3-8 10:09
谢谢,成功了,但是为什么呢,默认是double类型的吧,为什么就不可以呢

help  imwrite
help  imshow

MATLAB 基础讨论
版块优秀回答者

退役版主

2501 麦片

财富积分



11

主题

2769

帖子

276

最佳答案
  • 关注者: 201
发表于 2014-3-8 12:13:32 | 显示全部楼层
303256567 发表于 2014-3-8 10:09
谢谢,成功了,但是为什么呢,默认是double类型的吧,为什么就不可以呢

double型的图像矩阵的取值范围必须是0-1. uint8型的则必须是0-255. 你原来的代码混淆了这两种情况。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回顶部 返回列表