社区
图形处理/算法
帖子详情
获取HDIB每个像素的RGB值
wenstory
2009-11-18 11:14:00
很菜鸟的问题
我已经将图片加载为HDIB了
现在需要将里面每个像素的RGB值取出来
...全文
144
7
打赏
收藏
获取HDIB每个像素的RGB值
很菜鸟的问题 我已经将图片加载为HDIB了 现在需要将里面每个像素的RGB值取出来
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fandh
2009-11-20
打赏
举报
回复
http://www.codeproject.com/KB/graphics/cximage.aspx
cximage的下载地址,楼主下了自己看吧!
tan625747
2009-11-20
打赏
举报
回复
px = new unsigned char[bm.bmHeight*bm.bmWidthBytes];//定义像数数组
4楼已给出理论方法
下面是具体代码实现
GetBitmapBits(HDIB,bm.bmHeight*bm.bmWidthBytes,px);
PixelBytes = bm.bmBitsPixel/8;
rgb_b = (g_pt.y)*bm.bmWidthBytes+(g_p.x)*PixelBytes;
g_pt.x g_pt.y 图像x y坐标
RGB值为
px[rgb_b]=G
px[rgb_b+1]=R
px[rgb_b+2]=B
请仔细看下文
http://hi.baidu.com/126_/blog/item/2ad1fd3d74a37fc39e3d622c.html
mmilmf
2009-11-19
打赏
举报
回复
[Quote=引用 4 楼 cloudyi 的回复:]
1. 直接用文件读取的方式操作吧, 如果是bmp格式的话, 移动文件指针到调色板后(即真实的位图数据开始处)开始读取位图数据, 数据的排序方式是从最后一行向前排序, 每一行的数据是从图像行的从左到右排列, 每个像素点的排列方式是B, G, R排列, 只要取出每一行数据的行首地址, 即可获取R, G, B分量
2. 而且这样可以获取位图的相关信息如宽, 高, 等, 网上可以查找相应的类CDib, 如果有时间, 可以对位图的相关知识熟悉下自己写个类
3. 如果格式不为bmp, 那么可以在操作之前进行格式转换, 比如用现在的库CxImage, 也是开源的
[/Quote]
bucuo
wltg2001
2009-11-18
打赏
举报
回复
用GetDIBits可以将位图数据存到一个数组中去
ezhuyin
2009-11-18
打赏
举报
回复
你可以把图片用CImage加载,然后里面用GetPixel函数读取每一个像素的RGB
cloudyi
2009-11-18
打赏
举报
回复
1. 直接用文件读取的方式操作吧, 如果是bmp格式的话, 移动文件指针到调色板后(即真实的位图数据开始处)开始读取位图数据, 数据的排序方式是从最后一行向前排序, 每一行的数据是从图像行的从左到右排列, 每个像素点的排列方式是B, G, R排列, 只要取出每一行数据的行首地址, 即可获取R, G, B分量
2. 而且这样可以获取位图的相关信息如宽, 高, 等, 网上可以查找相应的类CDib, 如果有时间, 可以对位图的相关知识熟悉下自己写个类
3. 如果格式不为bmp, 那么可以在操作之前进行格式转换, 比如用现在的库CxImage, 也是开源的
hhwei1985
2009-11-18
打赏
举报
回复
up
php
获取
像素
颜色,如何取一个
像素
点的
RGB
颜色
值
?
你的位置:问答吧-> VC-> 问题详情如何取一个
像素
点的
RGB
颜色
值
?GDI方面的很少接触,现在项目需求硬着头皮上了!以下的代码调试了好久,一直没有找到原因,请路过的大牛不惜赐教!伪代码如下:C/C++ codeclassCTestDlg :publicCDialog{public://......publi...
图像处理(二)
二.具体程序实现a)基于子块颜色直方图方法的程序实现:将图片分成4×4格局,按从左到右、从上到下的顺序,分别计算各子块的颜色直方图,因此需要设定一个三维数组,前两维为子块的坐标,最后一维为颜色级,但现在采样得到的象素点的颜色
值
是
RGB
形式的,因此,需要将
RGB
形式转换为可以用比较合理的有限数表示的颜色级,而人眼对亮度是最为敏感的,因此可以将
RGB
转换为亮度
值
Y,公式为:Y=R×0....
java读取bmp图片
像素
数据_如何
获取
BMP的数据
下面是一段屏幕拷贝的代码,共两个功能函数,其中一个函数可以把 HBITMAP 保存为 BMP 文件// scr2bmp.cpp : Defines the entry point for the application.//#include "stdafx.h"#include "resource.h"LRESULT CALLBACKAbout(HWND hwnd,UINT uMsg,WPARAM...
使用 MFC 编写的 VC++2012 图像去底灰的示例
然后,在 RemoveBackground 函数中,我们遍历
每个
像素
,并计算其灰度
值
。最后,在 ShowImage 函数中,我们将修改后的
像素
数据绘制到静态文本控件上。在 LoadImage 函数中,我们使用 LoadImage 函数加载图像,并使用 CreateDIBSection 函数创建一个与位图兼容的 DIB。在 RemoveBackground 函数中,与之前一样,我们遍历
每个
像素
,并计算其灰度
值
。首先,在 MFC 应用程序中添加一个对话框,并在其上添加一个静态文本控件和一个按钮。
VC数字图像处理编程讲座之三
VC数字图像处理编程讲座之三 cndg图像的基本概念1. 采样是指将在空间上连续的图像转换成离散的采样点(即
像素
)集的操作。由于图像是二维分布的信息,所以采样是在 x轴和y轴两个方向上进行。一般情况下, x轴方向与y轴方向的采样间
图形处理/算法
19,469
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章