关于MFC当中使用VC(C++)8位BMP提取Y通道平均值的笔记
来源:互联网 发布:旅行收纳袋 知乎 编辑:程序博客网 时间:2024/05/22 09:05
第一点、关于8位bmp图片,首先拿到图片如果是彩色的那么该图片调色板并没有进行灰度化,要进行灰度化转换才能够使bmp图片变成灰度图片。
关于调色板进行灰度调整的代码如下:
for(i=0;i<256;i++){ tempRgbArr[i].rgbRed=i;tempRgbArr[i].rgbGreen=i;tempRgbArr[i].rgbBlue=i;tempRgbArr[i].rgbReserved=0;}简要说明下:tempRgbArr[]数组是临时变量,那么要进行三色分量进行一致处理,然后使透明色为‘0’,我也不知道为什么是‘0’,但是我看了很多灰度图片的二进制文件发现透明值都是‘0’。然后的位图数据处理我现在还不清楚。
假如拿到手的bmp图片已经是8位的灰度图,那么只要读出来然后在进行位图数据相加变成和之后除以总的像素点就可以得到Y通道的平均值了。
第二点、关于Y通道,这是对于YUV格式来说的,Y表示的是图片的亮度值,UV表示的是图片的色彩值。那么灰度图顾名思义就是去掉了色彩的bmp图片。拿到手之后的灰度图它的位图数据就是Y通道的数据。
第三点、关于8位bmp数据格式:文件头+信息头+调色板+位图数据。关于后两者的关系我十分纠结,网上说调色板是存放色彩用的,图片用的色彩都在调色板里面,而位图数据则是进行索引调色板用的,位图数据存放的是索引值。而我的上级跟我说这完全是扯淡,位图数据就是像素值。好吧,我现在手头上有一张8位bmp灰度图,然后用photoshop7查看了数据,发现位图数据就是像素值,我不想说什么,这个还需要日后的考证。
以上笔记完全原创,如有雷同真的是巧了。如有问题欢迎留言交流。
阅读全文
0 0
- 关于MFC当中使用VC(C++)8位BMP提取Y通道平均值的笔记
- C语言当中位段的使用
- c语言当中位段的使用
- c语言当中位段的使用
- C语言当中位段的使用
- 关于Opengl中将24位BMP图片添加一个alpha通道并实现透明的问题
- VC++ MFC中 使用BMP按钮
- 求X,Y的平均值
- OpenCv学习笔记(四):使用split函数提取彩色图像的三个通道
- 关于48位bmp图像的转换
- vc++ mfc 里保存缩放的bmp图片 不失真
- MFC当中的宏
- MFC当中的后缀名
- 使用C++读取8位BMP位图
- 使用split函数提取彩色图像的三个通道
- 使用opencv提取RGB图像的三个通道,并显示
- 关于VC、MFC和ACCESS的一些使用问题
- 工作当中使用的命令----笔记
- openvpn配置
- LeetCode oj 21. Merge Two Sorted Lists(分类:链表)(难度:easy)
- Unity教程之-Unity3d自带寻路Navmesh
- 搜索专题总结
- shell 脚本编程之算术运算符
- 关于MFC当中使用VC(C++)8位BMP提取Y通道平均值的笔记
- 设计模式六大原则
- com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column dd in where clause
- uva 12338
- Linux如何查看JDK的安装路径
- opencv 分辨率与resize
- 各种排序算法解析
- Java常用类及其方法(四)Integer
- Java实践(四)---进阶笔记之二