dicom格式图像灰度问题

winnie_0520 2009-03-26 10:29:16
用matlab读入dicom格式图像的时候,发现灰度值的范围是从-2000到1000,但是如果这样参与运算的话,很多函数的参数会不符合要求,因为函数的参数要求是0-255,或0-1,我不知道如何将原来的灰度范围转换到标准的0-255之间,希望高手能指点一下,非常感谢!
...全文
760 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
winnie_0520 2009-03-28
  • 打赏
  • 举报
回复
我是将原矩阵减最小值之后又乘以255/pixel(x,y),把所有的象素都转为0-255了,不知道这样可不可以呢?
但是转换完之后im2bw函数还是用不了,二值化后图像为全白,我又做了一个for循环,想代替im2bw函数,但是不好用,我用分布执行发现进到if以后,它并不按照判断的结果执行,而是第一次执行if第二次执行else,如此反复,而且执行重新赋值后,原矩阵的元素并不改变,请高手指点,谢谢!循环如下:
for i=1:m
for j=1:n
if a(m,n)>=84
a(m,n)=0;
else
a(m,n)=255;
end
end
end
zkhraul 2009-03-28
  • 打赏
  • 举报
回复
直接用线性变化就可以了
eblis88 2009-03-26
  • 打赏
  • 举报
回复
上面if条件写错了。
if pixels(i,j) < GrayHigh && pixels(i,j) > GrayLow
eblis88 2009-03-26
  • 打赏
  • 举报
回复
设置窗位WndCenter
窗宽WndWidth

int GrayHigh = WndCenter + WndWidth/2;
int GrayLow = WndCenter - WndWidth /2;
if pixels(i,j) < GrayHigh && pixels[i] > GrayLow
Newpixel(i,j) = 255 * ( pixels(i,j) - GrayLow ) / WndWidth;
gamedragon 2009-03-26
  • 打赏
  • 举报
回复
归一化一下就好了,先转化成0-1,然后想转到什么区间都OK。

4,506

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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