AI智能
改变未来

智能摄像头,AI热成像应用系统 MFC 界面实现

公司是做AI摄像头的,由于疫情原因,给设备增加了测温模块。老板要求做个PC版的展示界面。时间要求:越快越好。

好吧,那就在原版SDK上修改吧。

原版SDK是用Visual Studio C++实现的,还是MFC的界面,那就找个好用的界面伸缩库吧,在这里下载:https://www.codeproject.com/Articles/125068/MFC-C-Helper-Class-for-Window-Resizing

里面范例非常多,各式各样的都有。

先看看我的软件界面:

整体布局:

1:左上角两个视频框,一个普通视频,一个热力视频。左上角位置固定,随窗口大小变化而变化大小。

2:右侧按钮和图片、超标温度显示。大小固定,随窗口右侧移动而移动。

3:底部图片、所有温度显示。大小固定,随窗口底部移动而移动。

先看看第2个怎么做:

.h里声明变量:

[code]#include \"WndResizer.h\"CWndResizer m_resizer;

.cpp里加几行代码: 

[code]BOOL CXXXDlg::OnInitDialog(){CDialog::OnInitDialog();BOOL bOk = FALSE;bOk = m_resizer.SetAnchor(IDC_STATIC_LOGIN, ANCHOR_RIGHT | ANCHOR_TOP);ASSERT(bOk);return TRUE;}

 其中IDC_STATIC_LOGIN是控件ID,ANCHOR_RIGHT表示右侧距离固定,ANCHOR_TOP表示顶部距离固定。

再看看第3个怎么做:

[code]int id = m_pStatic_temp[i]->GetDlgCtrlID();bOk = m_resizer.SetAnchor(id, ANCHOR_LEFT | ANCHOR_BOTTOM);

就换了一个参数而已,ANCHOR_LEFT表示左侧距离固定,ANCHOR_BOTTOM表示底部距离固定。

还剩第1个看看怎么做的,由于视频框是整个软件界面宽度减去右侧固定距离后各占一半,WndResizerApp不能实现,所以自己手工实现一个吧,代码也不多:

[code]void CXXXDlg::OnSize(UINT nType, int cx, int cy){CDialog::OnSize(nType, cx, cy);if (nType == SIZE_MAXIMIZED || nType == SIZE_RESTORED){UpdateVideoFrame();}}void CXXXDlg::UpdateVideoFrame(){CRect rect;//当前整个窗口大小CWnd *pWnd = this->FromHandle(this->m_hWnd);CRect main_frame;pWnd->GetClientRect(&main_frame);//调整两个视屏框大小GetDlgItem(IDC_STATIC_VIDEO)->GetWindowRect(&rect);ScreenToClient(rect);rect.right = rect.left + (main_frame.Width() - VIDEO_RIHGT) / 2;rect.bottom = rect.top + (main_frame.Height() - VIDEO_BOTTOM);GetDlgItem(IDC_STATIC_VIDEO)->MoveWindow(rect);GetDlgItem(IDC_STATIC_VIDEO)->InvalidateRect(rect);rect.OffsetRect(CSize(rect.Width() + 7));GetDlgItem(IDC_STATIC_VIDEO2)->MoveWindow(rect);GetDlgItem(IDC_STATIC_VIDEO2)->InvalidateRect(rect);return;}

先获取软件界面大小GetClientRect,第一个视频框左侧位置不变,右侧是整个软件界面宽度main_frame.Width()减去右侧固定距离VIDEO_RIHGT的一半,高度是整个软件界面高度main_frame.Height()减去底部固定距离VIDEO_BOTTOM;第二个视频框根据第一个视频框位置往右再小移一点点就行了。

看看效果吧:

 看看我用的摄像头长啥样:

 检测到温度超标的人脸图片再上传到公司的平台,用web页面形式展现出来,嗯,完美。

平台里再来个黑名单配置,告警配置,再结合原有的人脸识别功能,哇塞!应用前景前途无量啊,哈哈

 

 

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 智能摄像头,AI热成像应用系统 MFC 界面实现