查看: 746|回复: 3|关注: 0

[已答复] 关于imread索引图片的问题

[复制链接]

新手

12 麦片

财富积分


050


3

主题

10

帖子

0

最佳答案
发表于 2018-2-13 14:54:25 | 显示全部楼层 |阅读模式
本帖最后由 Dreamor_007 于 2018-2-13 14:58 编辑

根据书上对于索引图片的定义:  

索引图片包括图像矩阵和颜色图数组,其中,颜色图数组是按图像中颜色值进行排序后的数组。对于每个像素,图像矩阵包含一个值,这个值就是颜色图中的索引。颜色图为m*3双精度矩阵,各行分别指定红绿蓝单色值。

这个定义我还是能看懂的。

问题是:


下图是我编写的程序:

wenti1.png
我觉得此处的:map值应该为m*3矩阵,x中应该是128*128索引值。(此处采用的是128*128像素值图片)???

    [X,MAP] = imread(FILENAME,FMT) reads the indexed image in FILENAME into
    X and its associated colormap into MAP. Colormap values in the image
    file are automatically rescaled into the range [0,1].

    imshow(X,MAP) displays the indexed image X with the colormap MAP.



希望大家不吝赐教  谢谢


新手

12 麦片

财富积分


050


3

主题

10

帖子

0

最佳答案
 楼主| 发表于 2018-2-13 17:48:11 | 显示全部楼层
自问自答:

[x,map]=imread('1,jpg')

这句话得到的x格式为m*n*3   map=[]

而索引图像的格式要求x 为m*n   map格式为m*3

所以首先要对RGB图像进行索引转化  
使用

[x,map]=rgb2ind(RGB,0.5)

就可以实现索引图像了

新手

12 麦片

财富积分


050


3

主题

10

帖子

0

最佳答案
 楼主| 发表于 2018-2-13 17:52:35 | 显示全部楼层
现在问题又来了~
将RGB格式图片首先转化为索引图像

但是,后续将索引格式图像转化为灰度图时,发现中间索引图像不能显示

请大家赐教~谢谢


如图

wenti3.png

wenti2.png

MATLAB 图像处理与计算机视觉
版块优秀回答者

入门

452 麦片

财富积分


50500


71

主题

1565

帖子

99

最佳答案
  • 关注者: 28
发表于 2018-2-26 13:48:24 | 显示全部楼层
索引图显示正常,rgb2ind(...,0.5)设置的0.5, 转化之后只有 (1/0.5+1)^3个索引值,信息丢失严重。
建议使用rgb2ind(...,levels)的转化方式,指定转化为levels个索引。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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