gxqcdit 发表于 2005-10-19 21:22

在Matlab中如何实现灰度图区间灰度赋值?

例如:
灰度区间为, 则凡是灰度值小于150的点都赋值为0, 凡是灰度值大于200的都赋值为255, 在区间内的灰度值不变.
如果某像素点的灰度值为(125,125,1225)则应该更改为(0,0,0),如果某点的灰度值为(205,205,205)则应更改为(255,255,255),如果像素点的灰度值为(180,180,180)则不变。
该如何实现呢? 用什么命令呢? 我用imshow(I,没有实现.

难道需要对每个像素点作灰度值大小判断吗? 有没有简单一点的办法?

[ 本帖最后由 ChaChing 于 2010-7-11 13:01 编辑 ]

suffer 发表于 2005-10-20 11:19

回复:(gxqcdit)高手进啊: 在Matlab中如何实现灰度图...

    IMSHOW(I,) displays I as a grayscale intensity<BR>    image, specifying the data range for I. The value LOW (and<BR>    any value less than LOW) displays as black, the HIGH (and any<BR>    value greater than HIGH) displays as white, and values in<BR>    between display as intermediate shades of gray. IMSHOW uses<BR>    the default number of gray levels. If you use an empty matrix<BR>    ([]) for , IMSHOW uses ; the<BR>    minimum value in I displays as black, and the maximum value<BR>    displays as white.<BR><BR>根据说明是可以的,但是我试了一下也不行<BR>而且不光是IMSHOW(I,) 不行<BR>imshow其他好多的显示方式都不行,郁闷死了

gxqcdit 发表于 2005-10-20 11:35

同感,同感!

我用下列代码尝试,还是不行,还是原图没变。
I=imread('E:\\1.bmp');
imshow(I,);

有谁知道怎么弄?

为何原图中(0,0,0)的点处理后变为(1,0,0)???

[ 本帖最后由 ChaChing 于 2010-7-11 13:00 编辑 ]
页: [1]
查看完整版本: 在Matlab中如何实现灰度图区间灰度赋值?