读取BMP图像每一像素点RGB数据
对于24位bmp图片,每一个像素点存放着此点的RGB值。首先定义一个结构体,包含红(red)、绿(green)、蓝(blue)这三个字段,如下:
- //像素颜色值
- typedef struct tagPOINT{
- BYTE b;
- BYTE g;
- BYTE r;
- } POINT;
接下来定义用来存放每一像素点RGB值的变量,为了与bmp图像的行、列对应,定义存放数据的变量如下:
- POINT **pix;
其中,pix[i][j]代表第i行j列处像素点的RGB值。
根据bmp图像宽与高,为指针变量动态分配内存空间,如下所示:
- //为标准图像每一个像素申请内存
- pix = (POINT **)malloc(sizeof(POINT*)*bi_in.biHeight);
- for(i=0;i<bi_in.biHeight;i++)
- *(pix+i)=(POINT*)malloc(sizeof(POINT)*bi_in.biWidth);
其中,bi_in.biHeight为图像高度,bi_in.biWidth为图像宽度。
读取图像每一像素点处的RGB值至pix变量中,如下:
- //读取图像数据
- for(i=0;i<bi_in.biHeight;i++)
- for(j=0;j<bi_in.biWidth;j++)
- fread(*(pix+i)+j,sizeof(POINT),1,fi);
现在,pix变量中就存放了整幅图像数据。可以通过下标或者指针运算读取任意点处的RGB值。
读取BMP图像每一像素点RGB数据相关推荐
- bmp 像素点 php,读取BMP图像每一像素点RGB数据 | 学步园
对于24位bmp图片,每一个像素点存放着此点的RGB值.首先定义一个结构体,包含红(red).绿(green).蓝(blue)这三个字段,如下: //像素颜色值 typedef struct tagP ...
- C语言读取bmp图像并做简单显示
C语言读取bmp图像并做简单显示) bmp文件格式 读取bmp文件信息并展示 bmp文件格式 bmp文件大体上分为四个部分: bmp文件构成 位图文件头BITMAPFILEHEADER 位图信息头BI ...
- C语言读取bmp图像
BMP图像编码 BMP即bitmap,也就是位图,一般由4部分组成:文件头信息块.图像描述信息块.颜色表(在真彩色模式无颜色表)和图像数据区. 在图像数据之前,如图所示,共有54位数据 其中,0x42 ...
- java读取bmp图像_JAVA实现对BMP图片的读取
BMP图片格式,是windows自带的一个图片格式,(*bmp),在windows的系统下都支持这种格式,bmp格式与设备无关的位图(DIB)格式,BMP简称位图,BMP的原始数据是没有经过压缩处理的 ...
- c语言bmp图像YUV转化成RGB,RGB与YUV图像格式的相互转换
RGB与YUV图像格式的相互转换 (参考上的<RGB与YUV图像视频格式的相互转换>文章,做了些修改) RGB介绍:在记录计算机图像时,最常见的是采用RGB(红.绿,蓝)颜色分量来保存颜色 ...
- C# 读取bmp图像所有像素值
将Bitmap数据转为byte[]数据,且每个数据代表像素值 Bitmap bmp = new Bitmap(Image.FromFile(path)); // 加载图像 private byte[] ...
- java bmp rgb_如何获取BMP图像每点RGB颜色值
不用GetPixel函数,效率太低. 看了下BMP图原理,读取了BMP图数据,每一个像素位对应一个颜色索引号 如果这样,用这个索引找颜色,应该效率会高些.但不会实现方法. 还有就是不理解几个地方,其它 ...
- 图像识别 - C++读取bmp位图入门
原文链接 =============================================================================================== ...
- HBITMAP与BITMAP 的区别 BMP图像的格式
HBITMAP 是句柄: BITMAP 是实例: typedef struct tagBITMAP { /* bm */ int bmType;//必须是BM int bmWidth;//指定位图的宽 ...
最新文章
- 中兴SDH原理介绍及中兴E300网管介绍
- 15.文件系统——软RAID的实现(二)(mdadm,watch, RAID1)
- 产品成功之后的品牌策略
- Ubuntu:成功解决ubuntu使用su切换root出现Authentication failure用户时认证失败
- RtlAdjustPrivilege 一行代码提升进程权限
- 数十种TensorFlow实现案例汇集:代码+笔记
- Win7下搭建外网环境的SVN服务器
- 保存网络文章以供以后使用Instapaper阅读
- 用信号量解决进程的同步与互斥
- 2.数据湖DeltaLake之DDL操作
- mysql执行脚本的方法
- Web API 文档生成工具 apidoc
- python截图搜题_用python的OCR实现自动截图搜题
- flink的测试sql怎么测试呢,不能每次都使用jar测试吧,那么sqk-client就来了
- 环信的使用以及注意事项!
- YOLOv3使用笔记
- Android短信数据库相关
- spark入门案例以及sbt安装与打包(Linux环境)
- 安装sql错误:系统找不到指定路径
- linux-文件切割-splitcsplit