图像数据和bmp文件中的图像数据之间的关系?(200分)

N

nywjx

Unregistered / Unconfirmed
GUEST, unregistred user!
我从指纹头中得到大拇指的32768个字节的图像数据,同时使用开发包中的api函数直接
显示大拇指的单色图像(a.bmp)和灰度图像(b.bmp),图片大小都是128x256(刚好是
32768个像素),我现在想分析大拇指的32768个字节的数据和灰度图像中的图像数据之间
的关系。
灰度图像b.bmp是24bit的图像,去掉图像头部分后,还有32768X3=98304个字节的数据。
我现在想问一下,我从指纹头中得到的32768个字节的数据(应该就是对应的
128x256=32768个像素的数据吧?)和这98304个字节的数据之间是怎样的关系?
也就是前者的一个字节(如60)怎么转换成后者的三个字节(如:xx xx xx)?
有什么规律吗?
 
注意,灰度图象是256色的,也就是说他的每个想素是一个字节,而不是24位真彩的三个字节,
单色和灰度无法精确转化,因为灰度有一定的图象层次而单色的没有,只是黑白二值图.
所以两者之间转化的难度较大,我认为只能近似的比较,例如给定一个误差范围
 

字段偏移 字段说明
0 规定必须是“BM”,作为识别BMP文件的标志
2 给出位图文件大小以字节为单位
6 保留并必须置为0
8 保留并必须置为0
10 给出位图阵列相对于文件头的偏移
28 像素的位数(例如:24(真彩色)、8(256色))
34 确定图像字节数的多少位通常此项为空
位图阵列 位图阵列中每3个字节表示一个像素,3个字节依次表示这个供暖素的红(R)绿(G)蓝(B)亮度分量值。
 
to only you :
的确如您所说,灰度图像一个象素是一个字节。
可能是我没说清楚,我用api函数从指纹头中读出的grey data(资料上这么写的)是32768
个字节,而我用api函数显示在image控件上的图片,然后再保存为bmp文件后,用acdsee看,
就是128x256x24bit;
而前者的32768也刚好是128x256,所以我想从指纹头中读到的32768个字节的grey data应该
和在bmp文件中的98304个字节的纯图像数据是一个字节对三个字节的关系,所以我想问一下
这一对三是什么样的关系?
 
to:bigroute
您写的是bmp文件头的格式,这个我这两天也刚开始看,呵呵。大体知道了。现在问题是:
bmp文件中的纯图像数据和我从指纹头里读出的数据之间是什么样的对应关系?从数量上
来说是3个字节对1个字节的关系,可是不知道有没有什么公式关系。
 
如果bmp是灰度的话,应该是这样的
前者一个字节重复三遍就行了.
比如60,到了bmp中变为60 60 60
 
to LeeChange:
“如果bmp是灰度的话”是什么意思?我的bmp图片用acdsee看,是128x256x24bit。是不是
灰度的?还是要看bmp文件头?
 
你凭你的眼睛看,是彩色的吗?
如果不是,就是灰度的.
 
图象领域是个有前途的东东,可惜偶势力不济!!!!!!!!!!!!!!!
 
to :LeeChange:
好像不是彩色的,是灰度的。但是好像不是三个字节重复那么简单哦。
 
to nywjx:
公共关系都是数据,重要的是每个数据都有自己在图象中的位置,
做图型识别很难的,找找有关方面的书,里面会有介绍的。
 
多人接受答案了。
 
顶部