1.playsound
加入了以下两句话:
#include "Mmsystem.h"
#pragma comment(lib,"winmm.lib")
是因为要用到playsound,导入winmm.lib库,有了它才可以支持对windows 多媒体的编程.
PlaySoundA("d:\\audio\\fingerprint.wav", NULL, SND_FILENAME | SND_SYNC );
2.OPENCV
OPENCV中注意是IplImage* cimg = 0;第一个字母是I不是L。
在对于OPENCV的配置上,网络上有很多的文章,就不详述了。基本的就是在TOOLS-options里面设置directory里面的种种包含include等等,另一个就是在项目属性里面的linker->input里面的additional dependencies加入 cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib,这里相当于VC6里面的一个那个地方(忘了)。
后面这一点非常的重要,否则就用不了会出错。
获得图像的值呢可以就通过这个一句话,datame = ( uchar * ) cimg->imageData;(datame是unchar*型)
改变图中某位置的颜色呢,核心代码如下:
for (int kk = 0; kk < AllNumber; kk++)
{
if (LabStatus[kk][0] == 1)
{
for ( int i = LabStatus[kk][2] - BlockHeight; i < LabStatus[kk][2] + BlockHeight; i++ )
{
for (int j = LabStatus[kk][1] - BlockWidth; j < LabStatus[kk][1] + BlockWidth; j++ )
{
for ( int k = 0; k < 3; k++ )
{
datame[i * step + j * channels + k] = datame[i * step + j * channels + k] -35;
}
}
}
}
}
其实这段代码很简单,就是找到位置块后把大小为blockheight*blockwidth的块的颜色变得暗一些,这样来标记不同的来了与否。然后其实也没有什么上网的功能,就是在最后把这个图给网络共享掉。
在程序的最后,对数据进行保存cvSaveImage("D:\\status\\people.jpg", cimg);(因为datname对应了那段数据的指针,数据已然在cimg中更改)。