我网上找了一个例子,可以通过视频采集设备来保存BMP或者AVI。程序是基于DIALOG的。可以显示出来当前的捕捉的影象。
我现在想在这个影象显示的范围内,按照一定的规律(间隔一定的像素)来取出来当前像素点的颜色。保存成COLORREF类型的。
目的是把当前一帧的保存下来。然后在保存下一帧 2帧的数据做一些对比。我想问一下要如何才能把影象区域的颜色都保存下来,难道我采多少个点,就要定义多少个COLORREF变量么? 用什么方式保存比较快捷?哎~~问题自己都觉得有些傻,见谅。 或者有没有其他方便的方法,请指点一下。谢谢。我会继续加分的。目前就这么多了
我现在想在这个影象显示的范围内,按照一定的规律(间隔一定的像素)来取出来当前像素点的颜色。保存成COLORREF类型的。
目的是把当前一帧的保存下来。然后在保存下一帧 2帧的数据做一些对比。我想问一下要如何才能把影象区域的颜色都保存下来,难道我采多少个点,就要定义多少个COLORREF变量么? 用什么方式保存比较快捷?哎~~问题自己都觉得有些傻,见谅。 或者有没有其他方便的方法,请指点一下。谢谢。我会继续加分的。目前就这么多了
比如我默认要采集10X10个点。是否可以在程序中设置要采集的点呢?20X20 100X100?
谢谢!
16位色,宽100,高100的位图就需要200×100的字节数组来存储。
在采集数据的时候,可以按一定的间距提取象素,以提高比较速度和效率。
比如一个16位色,宽100,高100的位图,可以间隔1列进行抽取,数组大小就可以缩小为100×100个字节。
采集的图象是通过摄像头采集到的,然后显示在DIALOG的一个区域内。RGB(255,255,255)这个应该就是8位色的吧。我仔细看了你写给我的。一个字节只能保存0-255吧?这样保存出来的不是成了灰度的颜色数据了么?还是我理解错误了?
这个可以调节么?我以前好象实验用 int abc[x][y] 好象不能通过啊
int nRow; //定义行数
int nCol; //定义列数
nRow = 图像区域宽度 / 间隔;
nCol = 图像区域高度 / 间隔;
COLORREF* pColor = new COLORREF[nRow * nCol]; //注意必须用数组
//要访问第n行第m列的颜色值如下:
pColor[n * nRow + m];对于转换为灰度图,可以用R+G+B /3,但通常还会考虑不同颜色分量的权重。