一个灰度位图,我用读位图的代码将其像素灰度读入一个int数组 然后将其存入.txt文件然后通过运算处理(运算过程中需要归一化)以后输出的是float型的.txt文件。现在我想把这个输出txt文件转换成一个灰度位图文件,这其中有int-float-char的转换,丢失数据,显示的图像都是黑色! 
请问一下高手 我用什么办法能解决这个问题呢!

解决方案 »

  1.   

    一个灰度位图,我用读位图的代码将其像素灰度读入一个int数组 然后将其存入.txt文件然后通过运算处理(运算过程中需要归一化)以后输出的是float型的.txt文件。现在我想把这个输出txt文件转换成一个灰度位图文件,这其中有int-float-char的转换,丢失数据,显示的图像都是黑色! 
    请问一下高手 我用什么办法能解决这个问题呢!
      

  2.   

    灰度图  0~255 到 归一化:0~1       int i; j=float(i/255.0)
    归一化:0~1  到灰度图         char(j*255.0)
    强制转换不就行了
      

  3.   

    用的matlab?
    所有画素值取整,用imshow显示即可。
      

  4.   

    当然是vc啊,处理的位图是256的灰度图,可能我的问题有点幼稚哈,我也想了处理256色的图像素的范围只能是0到255的整数,浮点只能是进行一下强制转换,问一下各位:读取位图那个程序中用的是用二进制打开文件,然后对文件中的数据用char强制转换的,我疑惑的是为什么不用UINT呢?matlab中的uint8显示位图文件不就是这么搞的吗?
      

  5.   

    UINT  = unsigned int  4个字节
    char                  1个字节
    0~255,用一个字节就能表示了!不明白你为什么要读取到int数组中
    uint8应该就是char才对!或者unsigned char
    unit16才是 int
      

  6.   

    谢谢,我明白了,感谢大家!感谢guanghong!