对于有 w32和x64 两种类型的SDK,选中配置的类型取决于vs编译器。若是vs2010用w32。与PC操作系统的位数无关。
Debug模式下使用debug的SDK;Release模式下使用Release的SDK。
1、添加include中的.h文件:工程---属性---配置属性---VC++目录---包含目录
2、然后添加工程引用的.DLL路径:工程---属性---配置属性-- VC++目录---引用目录
3、添加文件引用的lib静态库路径:工程---属性---配置属性--- VC++目录---库目录
4、然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项
5、将.DLL放入到工程的可执行文件所在的目录。
参考:http://www.cnblogs.com/me115/archive/2011/01/24/1942901.html
WAY2:
在VS工程中,添加c/c++工程中外部头文件及库的基本步骤:
1、添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。
2、添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。
然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项:加上lib文件名。
3、添加工程引用的dll动态库:把引用的dll放到工程的可执行文件所在的目录下。
其中第三点也可以替换为:
http://blog.csdn.net/lsxpu/article/details/44347957
"工程属性" ==> "调试" ==> "环境"里,添加类似如下所示的内容:
PATH=C:\Users\UCAS\Documents\IC
Imaging
Control
3.4\classlib\win32\debug;%PATH%
注:文件路径后面一定要加英文分号(;),否则路径读取失败
注:
对于pcomm加入.lib文件时,只需加入大写的PCOMM.LIB文件,不用管小写的那个。
头文件加入#include "stdafx.h" #include
如何实现MFC窗口的最大化以及控件随最大化发生位置变动原因
Q:如何实现MFC窗口的最大化以及控件随最大化发生位置变动原因
http://bbs.csdn.net/topics/391832152?locationNum=5
笔记二:如何将buffer中的图像数据显示在MFC的Picture控件中? (2018.1.24)
先将buffer中数据转化为Mat格式,再以Mat类格式显示在窗口控件中。
cv::Mat frame(sFrameInfo.iHeight,sFrameInfo.iWidth , CV_8UC3, pThis->m_pDisplayBufferROI1);
ShowMatImgToWnd(pThis->GetDlgItem( IDC_STATIC_PREVIEW_ROI1), frame);
其中函数ShowMatImgToWnd定义如下:
void ShowMatImgToWnd(CWnd* pWnd, cv::Mat img)
{
if(img.empty())
return;
CRect drect;
pWnd->GetClientRect(&drect); //(drect); (&drect); 两种方式均可,竟然
CClientDC dc(pWnd);
HDC hDC =dc.GetSafeHdc();
//内存中的图像数据拷贝到屏幕上
BYTE *bitBuffer = NULL;
BITMAPINFO *bitMapinfo = NULL;
int ichannels =img.channels();
if( ichannels == 1)
{
bitBuffer = new BYTE[40+4*256];
}
else if( ichannels == 3)
{
bitBuffer = new BYTE[sizeof(BITMAPINFO)];
}
else
{
return;
}
if(bitBuffer == NULL)
{
return;
}
bitMapinfo = (BITMAPINFO *)bitBuffer;
bitMapinfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bitMapinfo->bmiHeader.biHeight = -img.rows; //如果高度为正的,位图的起始位置在左下角。如果高度为负,起始位置在左上角。
bitMapinfo->bmiHeader.biWidth = img.cols;
bitMapinfo->bmiHeader.biPlanes = 1; // 目标设备的级别,必须为1
bitMapinfo->bmiHeader.biBitCount = ichannels *8; // 每个像素所需的位数,必须是1(双色), 4(16色),8(256色)或24(真彩色)之一
bitMapinfo->bmiHeader.biCompression = BI_RGB; //位图压缩类型,必须是 0(不压缩), 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一
bitMapinfo->bmiHeader.biSizeImage = 0; // 位图的大小,以字节为单位
bitMapinfo->bmiHeader.biXPelsPerMeter = 0; // 位图水平分辨率,每米像素数
bitMapinfo->bmiHeader.biYPelsPerMeter = 0; // 位图垂直分辨率,每米像素数
bitMapinfo->bmiHeader.biClrUsed = 0; // 位图实际使用的颜色表中的颜色数
bitMapinfo->bmiHeader.biClrImportant = 0; // 位图显示过程中重要的颜色数
if(ichannels == 1)
{
for(int i=0; i<256; i++)
{ //颜色的取值范围 (0-255)
bitMapinfo->bmiColors[i].rgbBlue =bitMapinfo->bmiColors[i].rgbGreen =bitMapinfo->bmiColors[i].rgbRed =(BYTE) i;
}
bitMapinfo->bmiHeader.biClrUsed = 256; // 位图实际使用的颜色表中的颜色数
}
SetStretchBltMode(hDC, COLORONCOLOR);
StretchDIBits(hDC,
0,
0,
drect.right, //显示窗口宽度
drect.bottom, //显示窗口高度
0,
0,
img.cols, //图像宽度
img.rows, //图像高度
img.data,
bitMapinfo,
DIB_RGB_COLORS,
SRCCOPY
);
delete []bitBuffer;
}
Error: opencv中报错:无法打开文件“cxcore.lib”
当使用低版本的opencv库函数时,编译器报出上面的错误,解决方法为:连接器->输入->附加依赖项:(全部删除掉,或者换成新版本。
opencv_core2411.lib
opencv_ml2411.lib
opencv_highgui2411.lib
opencv_calib3d2411.lib
opencv_features2d2411.lib
opencv_flann2411.lib
opencv_imgproc2411.lib
opencv_video2411.lib
opencv_objdetect2411.lib)