想显示一个16位图像

acmewining 2010-05-28 02:21:09
在matlab中显示一个矩阵图像(比如X),用figure;imagesc(X);就可以了,VC中要麻烦很多。
以前在VC都用256色显示,用BitMapInfo的颜色表设置一下就可以用了。
但前几天发现matlab可以把颜色表给导出来:colormap(hot)等等。
所以试了一下,我把1024色的matlab的hot色系给弄出来了。但无论我怎么设置RGBQUAD都没法用。

不知各位大侠有没有什么方法可以做到?
...全文
459 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gudufuyun 2010-05-31
  • 打赏
  • 举报
回复
我对Matlab不熟悉,但16位图没有调色板。所以你设置调色板根本没用的。
2个字节按照6 6 4 或者5 5 6的方式存储3个分量。拉伸到0~255

我一直不明白matlab怎么显示8位彩图。用imshow是有问题的。
显示的图片很乱。
Normandie007 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xq830210 的回复:]
不同平台下的图像显示,文件结构是不一样的,matlab下的图片有他自己的一套显示方法,你如果一定要将某种效果应用于24位位图,可能你用常规的方法是根本实现不了的。最终的解决方案是你研究下matlab下的文件格式,然后自己定义一种24位图片格式(如果你一定要用24位的话)再做显示,毕竟用一般方法解决特殊问题是有难度的。

要么你考虑下VC与matlab混合编程,也可能实现你要的效果。
[/Quote]

上面写错了,你写的是16位的,其实也一样,16位,24位,32位都是没有颜色表的,需要你特殊处理
Normandie007 2010-05-31
  • 打赏
  • 举报
回复
不同平台下的图像显示,文件结构是不一样的,matlab下的图片有他自己的一套显示方法,你如果一定要将某种效果应用于24位位图,可能你用常规的方法是根本实现不了的。最终的解决方案是你研究下matlab下的文件格式,然后自己定义一种24位图片格式(如果你一定要用24位的话)再做显示,毕竟用一般方法解决特殊问题是有难度的。

要么你考虑下VC与matlab混合编程,也可能实现你要的效果。
acmewining 2010-05-31
  • 打赏
  • 举报
回复
顶一下吧,看有没有人知道
beyond071 2010-05-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 acmewining 的回复:]
对啊,在MATLAB里用Colormap命令把JET色或HOT色系导出来,然后想用它们做为VC的调色板,但发现只有8位下可以设置,而8位以上则无法弄了,所以才来请教各位大侠
[/Quote]
bmp只有2色,16色,256色是使用调色板的,也就是说1位、4位、8位的位图才是有调色板的。
而常见的24位真彩色bmp是不用调色板的,它存储了R、G、B的三个分量,因此根本无需调色板。
hgreminem 2010-05-29
  • 打赏
  • 举报
回复
呃~~~
8位以上的BMP有颜色表吗?
没有吧~~
acmewining 2010-05-29
  • 打赏
  • 举报
回复
对啊,在MATLAB里用Colormap命令把JET色或HOT色系导出来,然后想用它们做为VC的调色板,但发现只有8位下可以设置,而8位以上则无法弄了,所以才来请教各位大侠
acmewining 2010-05-29
  • 打赏
  • 举报
回复
那如果我要显示MATLAB里那种HOT的显示效果应该怎么做喃?
Normandie007 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 beyond071 的回复:]
LZ是想把MATLAB的颜色表给VC下使用,还是有别的问题?
[/Quote]
同问
beyond071 2010-05-28
  • 打赏
  • 举报
回复
image(X);colormap(hot); 在matlab下就是这么使用颜色表的。
LZ是想把MATLAB的颜色表给VC下使用,还是有别的问题?
beyond071 2010-05-28
  • 打赏
  • 举报
回复
LZ导入到MATLAB中的图形矩阵是索引图像数据矩阵么

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧