【数字图像处理】bmp文件详细分析
2011-09-20 10:44
666 查看
最近在做数字图像处理的助教,每一次都有一个实验,这里我想把每一次实验的内容写出来给自己做一个备注,以后查阅起来也比较方便,相关内容都是从网上查阅,然后自己进行整理和分析的。
第一个作业:BMP文件转换到YUV通道,改变Y,然后后在转换成BMP文件输出。
大家都知道RGB通道是具有颜色相关性的,如果单纯的在每一个颜色通道上进行加减,肯定是不行的,所以就需要首先转换成没有相关性YUV通道上,在进行处理。
转换的公式很简单,我这里就不在贴上来了,但是有以下几点很重要,在转换的时候要尤其注意。
1、BMP文件的扫描方式:从左到右,从下到上,如果一个图像水平线的字节数不是4的倍数,则这行要用空字节补齐(通常ASCII 0)
2、调色板。只有单色(1位),16色(4位)或者256色(8位)的BMP文件才有调色板信息,也就是bmp文件头和信息头后面紧跟着调色板。
在16位 24位和32位的BMP文件中,是不存在调色板信息的。图像的位图数据是紧跟在bmp信息头后面的,一般都是在54位。
3、有个很简单的方法来确定图像的位图信息的位置,就是在图像的文件头的offset信息处获得。
一般编程的时候注意到第一和第二点,图像按行处理,就不会出现大问题了。
补充点小知识:
彩色电视用的是yuv通道,这样做的好处是兼容黑白电视,因为YUV是相互独立的颜色通道,Y代表着亮度,U和V代表着色度。
参考:
YUV:http://zh.wikipedia.org/zh/YUV
BMP:http://zh.wikipedia.org/wiki/BMP
http://blog.ednchina.com/victor29z/204193/message.aspx
第一个作业:BMP文件转换到YUV通道,改变Y,然后后在转换成BMP文件输出。
大家都知道RGB通道是具有颜色相关性的,如果单纯的在每一个颜色通道上进行加减,肯定是不行的,所以就需要首先转换成没有相关性YUV通道上,在进行处理。
转换的公式很简单,我这里就不在贴上来了,但是有以下几点很重要,在转换的时候要尤其注意。
1、BMP文件的扫描方式:从左到右,从下到上,如果一个图像水平线的字节数不是4的倍数,则这行要用空字节补齐(通常ASCII 0)
2、调色板。只有单色(1位),16色(4位)或者256色(8位)的BMP文件才有调色板信息,也就是bmp文件头和信息头后面紧跟着调色板。
在16位 24位和32位的BMP文件中,是不存在调色板信息的。图像的位图数据是紧跟在bmp信息头后面的,一般都是在54位。
3、有个很简单的方法来确定图像的位图信息的位置,就是在图像的文件头的offset信息处获得。
一般编程的时候注意到第一和第二点,图像按行处理,就不会出现大问题了。
补充点小知识:
彩色电视用的是yuv通道,这样做的好处是兼容黑白电视,因为YUV是相互独立的颜色通道,Y代表着亮度,U和V代表着色度。
参考:
YUV:http://zh.wikipedia.org/zh/YUV
BMP:http://zh.wikipedia.org/wiki/BMP
http://blog.ednchina.com/victor29z/204193/message.aspx
相关文章推荐
- 【数字图像处理】C++读取、旋转和保存bmp图像文件编程实现
- 【数字图像处理】C++读取、旋转和保存bmp图像文件编程实现
- 数字图像处理基础【一】——BMP文件结构,读写
- 【数字图像处理】C++读取、旋转和保存bmp图像文件编程实现
- VC6.0图像处理0--bmp文件分析
- 【数字图像处理】C++读取、旋转和保存bmp图像文件编程实现
- VC6.0图像处理0--bmp文件分析
- 【数字图像处理】C++读取、旋转和保存bmp图像文件编程实现(转载)
- 图像处理基础——bmp文件
- 数字图像处理-----主成成分分析PCA
- 图像处理笔记(1): bmp文件结构处理与显示
- java数字图像处理基础使用imageio写图像文件示例(转载)
- OpenCV数字图像处理十:读写txt文件,在图像训练和测试的时候经常用到
- 数字图像处理---直方图处理的详细数学推导
- 关于结构体字对齐—BMP文件图像处理程序
- 数字图像处理之打开本地BMP位图
- 图像编程学习笔记1——bmp文件结构处理与显示
- 数字图像处理,BMP图像操作( biWidth*biBitCount+31)/32*4
- 【数字图像处理】<纯C++>读取、裁剪、缩放、旋转和存储8位bmp灰度图像
- 数字图像概念整理【4】——bmp、DIB文件格式