• 大小: 75.93MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2022-07-05
  • 语言: C/C++
  • 标签: Opencv3.4  VS2017  MFC  

资源简介

VS2017最新版MFC以及Opencv3.4,在对话框中打开摄像头并有手动截图功能,例程能跑起来的前提是你已经配置好了opencv的开发环境,配置步骤网上多的一笔,这里不给了。

资源截图

代码片段和文件信息

void zzc::MatToCImage(Mat& mat CImage& cimage)
{
if (0 == mat.total())
{
return;
}


int nChannels = mat.channels();
if ((1 != nChannels) && (3 != nChannels))
{
return;
}
int nWidth = mat.cols;
int nHeight = mat.rows;


//重建cimage  
cimage.Destroy();
cimage.Create(nWidth nHeight 8 * nChannels);


//拷贝数据  


uchar* pucRow;                                  //指向数据区的行指针  
uchar* pucImage = (uchar*)cimage.GetBits();     //指向数据区的指针  
int nStep = cimage.GetPitch();                  //每行的字节数注意这个返回值有正有负  


if (1 == nChannels)                             //对于单通道的图像需要初始化调色板  
{
RGBQUAD* rgbquadColorTable;
int nMaxColors = 256;
rgbquadColorTable = new RGBQUAD[nMaxColors];
cimage.GetColorTable(0 nMaxColors rgbquadColorTable);
for (int nColor = 0; nColor < nMaxColors; nColor++)
{
rgbquadColorTable[nColor].rgbBlue = (uchar)nColor;
rgbquadColorTable[nColor].rgbGreen = (uchar)nColor;
rgbquadColorTable[nColor].rgbRed = (uchar)nColor;
}
cimage.SetColorTable(0 nMaxColors rgbquadColorTable);
delete[]rgbquadColorTable;
}


for (int nRow = 0; nRow < nHeight; nRow++)
{
pucRow = (mat.ptr(nRow));
for (int nCol = 0; nCol < nWidth; nCol++)
{
if (1 == nChannels)
{
*(pucImage + nRow * nStep + nCol) = pucRow[nCol];
}
else if (3 == nChannels)
{
for (int nCha = 0; nCha < 3; nCha++)
{
*(pucImage + nRow * nStep + nCol * 3 + nCha) = pucRow[nCol * 3 + nCha];
}
}
}
}
}

void zzc::CImageToMat(CImage& cimage Mat& mat)
{
if (true == cimage.IsNull())
{
return;
}


int nChannels = cimage.GetBPP() / 8;
if ((1 != nChannels) && (3 != nChannels))
{
return;
}
int nWidth = cimage.GetWidth();
int nHeight = cimage.GetHeight();


//重建mat  
if (1 == nChannels)
{
mat.create(nHeight nWidth CV_8UC1);
}
else if (3 == nChannels)
{
mat.create(nHeight nWidth CV_8UC3);
}


//拷贝数据  


uchar* pucRow;                                  //指向数据区的行指针  
uchar* pucImage = (uchar*)cimage.GetBits();     //指向数据区的指针  
int nStep = cimage.GetPitch();                  //每行的字节数注意这个返回值有正有负  


for (int nRow = 0; nRow < nHeight; nRow++)
{
pucRow = (mat.ptr(nRow));
for (int nCol = 0; nCol < nWidth; nCol++)
{
if (1 == nChannels)
{
pucRow[nCol] = *(pucImage + nRow * nStep + nCol);
}
else if (3 == nChannels)
{
for (int nCha = 0; nCha < 3; nCha++)
{
pucRow[nCol * 3 + nCha] = *(pucImage + nRow * nStep + nCol * 3 + nCha);
}
}
}
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-04-04 16:27  Camera2\
     目录           0  2018-04-04 09:15  Camera2\.vs\
     目录           0  2018-04-04 09:15  Camera2\.vs\Camera\
     目录           0  2018-04-10 10:52  Camera2\.vs\Camera\v15\
     文件       44544  2018-04-10 10:52  Camera2\.vs\Camera\v15\.suo
     文件    87093248  2018-04-10 10:52  Camera2\.vs\Camera\v15\Browse.VC.db
     目录           0  2018-04-04 14:03  Camera2\.vs\Camera\v15\ipch\
     文件   135135232  2018-04-10 10:51  Camera2\.vs\Camera\v15\ipch\70d0155568924191.ipch
     目录           0  2018-04-10 10:52  Camera2\.vs\Camera\v15\ipch\AutoPCH\
     目录           0  2018-04-10 10:51  Camera2\Camera\
     文件      109376  2018-04-10 10:51  Camera2\Camera\Camera.aps
     文件        4126  2018-04-04 09:15  Camera2\Camera\Camera.cpp
     文件         800  2018-04-04 09:15  Camera2\Camera\Camera.h
     文件       11350  2018-04-10 10:51  Camera2\Camera\Camera.rc
     文件       10489  2018-04-04 11:05  Camera2\Camera\Camera.vcxproj
     文件        2347  2018-04-04 11:05  Camera2\Camera\Camera.vcxproj.filters
     文件         229  2018-04-04 14:20  Camera2\Camera\Camera.vcxproj.user
     文件       10810  2018-04-10 10:51  Camera2\Camera\CameraDlg.cpp
     文件        1876  2018-04-04 16:49  Camera2\Camera\CameraDlg.h
     文件        6540  2018-03-30 11:25  Camera2\Camera\CvvImage.cpp
     文件        1586  2018-03-30 11:27  Camera2\Camera\CvvImage.h
     目录           0  2018-04-04 09:15  Camera2\Camera\res\
     文件       67777  2018-02-17 16:43  Camera2\Camera\res\Camera.ico
     文件         668  2018-04-04 09:15  Camera2\Camera\res\Camera.rc2
     文件         598  2018-02-17 16:43  Camera2\Camera\res\Toolbar.bmp
     文件        2994  2018-02-17 16:43  Camera2\Camera\res\Toolbar256.bmp
     文件        1874  2018-04-04 16:33  Camera2\Camera\resource.h
     文件         222  2018-04-04 09:15  Camera2\Camera\stdafx.cpp
     文件        2912  2018-04-04 09:15  Camera2\Camera\stdafx.h
     文件         370  2018-04-04 09:15  Camera2\Camera\targetver.h
     目录           0  2018-04-04 10:15  Camera2\Camera\x64\
............此处省略33个文件信息

评论

共有 条评论