16位灰度图像灰度值

邱秋1224 2018-03-01 09:27:10
请问大家,如何读取16位图像某点的灰度值?范围在0~65535
...全文
2511 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
OrdinaryCoder 2019-06-25
  • 打赏
  • 举报
回复
引用 9 楼 SillyBurden 的回复:
[quote=引用 5 楼 xuzuning 的回复:]
就是说你的图片是 PixelFormat.Format16bppGrayScale 格式的
可通过 BitmapData 锁定图片数据,直接读取出灰度数据,由于 每像素 16 位(2个字节)即 UINT16
也可以用文件流方式跳过头(52字节)直接读取


你好,我用vtkvolume16reader读16位灰度图有错位问题,使用你说的“跳过52字节的头”方法,图像错位被极大改善了,但仍有像素级的小幅度错位,不是完美的,请问为什么这个头是52字节呢?[/quote]
https://blog.csdn.net/flyfight88/article/details/8504326看一下这个
SillyBurden 2019-06-25
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
就是说你的图片是 PixelFormat.Format16bppGrayScale 格式的
可通过 BitmapData 锁定图片数据,直接读取出灰度数据,由于 每像素 16 位(2个字节)即 UINT16
也可以用文件流方式跳过头(52字节)直接读取


你好,我用vtkvolume16reader读16位灰度图有错位问题,使用你说的“跳过52字节的头”方法,图像错位被极大改善了,但仍有像素级的小幅度错位,不是完美的,请问为什么这个头是52字节呢?
xuzuning 2018-03-02
  • 打赏
  • 举报
回复
把你的图片放到网盘上,给我看看 如果你把图片用 GDI 打开,那么 PixelFormat 是会变的
邱秋1224 2018-03-02
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
就是说你的图片是 PixelFormat.Format16bppGrayScale 格式的 可通过 BitmapData 锁定图片数据,直接读取出灰度数据,由于 每像素 16 位(2个字节)即 UINT16 也可以用文件流方式跳过头(52字节)直接读取
谢谢!我的图片很奇怪,查看图片属性位深度是16位,但是我用c#查看 PixelFormat是Format32bppArgb,请问您知道这是怎么回事吗?
邱秋1224 2018-03-02
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
把你的图片放到网盘上,给我看看 如果你把图片用 GDI 打开,那么 PixelFormat 是会变的
链接:https://pan.baidu.com/s/1qZCWC2o 密码:9eyg
xuzuning 2018-03-01
  • 打赏
  • 举报
回复
就是说你的图片是 PixelFormat.Format16bppGrayScale 格式的 可通过 BitmapData 锁定图片数据,直接读取出灰度数据,由于 每像素 16 位(2个字节)即 UINT16 也可以用文件流方式跳过头(52字节)直接读取
邱秋1224 2018-03-01
  • 打赏
  • 举报
回复
不是彩色图像灰度化,现有的就是16位的灰度图像。
邱秋1224 2018-03-01
  • 打赏
  • 举报
回复
我用c#的GetPixel()获得的灰度值范围是0~255间的,如何获得16位的灰度值?范围在0~65535间的。
  • 打赏
  • 举报
回复
彩色图象的灰度其实在转化为黑白图像后的像素值(是一种广义的提法),转化的方法看应用的领域而定,一般按加权的方法转换,R, G,B 的比一般为3:6:1。 任何颜色都由红、绿、蓝三基色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度: 1.浮点算法:Gray=R*0.3+G*0.59+B*0.11 2.整数方法:Gray=(R*30+G*59+B*11)/100 3.移位方法:Gray =(R*77+G*151+B*28)>>8; 4.平均值法:Gray=(R+G+B)/3; 5.仅取绿色:Gray=G; 通过上述任一种方法求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。
  • 打赏
  • 举报
回复
不就是取RGB吗?

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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