请教,12位的灰度数据如何转换为8位的呢?

mouxiang 2010-08-02 01:45:20
图像采集时,我用的相机输出的灰度数据是12位的,一般做图像处理时用的是8位的灰度数据,因此我得将12位的转换为8位的。我想请问一下,这个转换一般是采用什么方法呢?(保证精度不会下降得太厉害)
别人告诉了我一种办法,说是先将12位的数据归一化,然后截取高八位数据,我想了想也觉得还挺有道理。不过我不是太确定这种办法是不是最优的,希望各位有经验的朋友能指点一下。
...全文
1411 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
副组长 2010-08-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mouxiang 的回复:]
谢谢LS两位的指点。
只需要把 12位数据<<8,然后>>12就行了,相当于:*256/4096

我可不可以直接将12位数据右移4位呢? >>4
[/Quote]
对,直接右移4位。除非你的图像太暗时可以少移一位。
mouxiang 2010-08-03
  • 打赏
  • 举报
回复
我初步确定就用截取高八位的方法了,不过从12位转换为8位时加入一些预处理步骤,比如平场校正、LOG变换等,然后再截取高八位。恩,基本上就这么办了。谢谢LS各位。
mouxiang 2010-08-03
  • 打赏
  • 举报
回复
6L你的头像看的我好蛋疼……o(╯□╰)o
xiaoyilong19 2010-08-03
  • 打赏
  • 举报
回复
医疗图像处理时,有从超过8位的图像数据,映射到8位灰度数据的具体算法,你可以详细搜索一下,关于窗位窗宽,就是相关处理的要点,精度应该说是很高的,有相关成熟的算法和程序代码,网上应该能找得到,可以借鉴一下
mouxiang 2010-08-02
  • 打赏
  • 举报
回复
谢谢LS指点,我去查一下你说的方法,如果不太复杂的话我就加到程序里去,毕竟还只是图像预处理,太复杂的话我怕影响后面的步骤。
xiuxianshen 2010-08-02
  • 打赏
  • 举报
回复
单单截取高8位的话可能会产生一些局部边缘失真问题,建议考虑一下误差扩散,斯坦伯格-佛洛依德抖动
mouxiang 2010-08-02
  • 打赏
  • 举报
回复
谢谢LS两位的指点。
只需要把 12位数据<<8,然后>>12就行了,相当于:*256/4096

我可不可以直接将12位数据右移4位呢? >>4
Erorr 2010-08-02
  • 打赏
  • 举报
回复
截取高8位已经是最优的了,一般都这么做
wuchuncai 2010-08-02
  • 打赏
  • 举报
回复
12位4096
8位256
只需要把 12位数据<<8,然后>>12就行了,相当于:*256/4096,对线形这肯定是最好的。
对非线性,就要考虑权重。。。

19,469

社区成员

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

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