OpenCV与MFC实战之图像处理 样本采集小工具制作 c++MFC课程设计

本文介绍了如何使用MFC和OpenCV创建一个图像处理样本采集小工具。工具允许用户选择原图片目录,设定正负样本目录,通过鼠标操作选取和调整图像区域,并保存选中区域到对应的样本目录。详细步骤包括界面控件绑定、选择图片目录、鼠标操作处理等。
摘要由CSDN通过智能技术生成

  运行环境VS2017,需要配置库为:opencv
  
  题目:样本采集小工具
  
  需求:
  
  用MFC和opencv完成样本采集小工具。
  
  界面功能
  
  1、选中原图片集的目录。
  
  2、选择当前是正样本还是负样本?并选中其目录。
  
  3、通过上一张下一张更换原图片集的图片显示。
  
  鼠标点击图片显示区域功能
  
  1、左击图片选中,以鼠标点击处为中心,宽W*高H的区域。
  
  2、鼠标滚轮上滚扩大选中区域。
  
  3、鼠标滚轮下滚缩小选中区域。
  
  4、右击保存选中区域的图片在正样本或负样本的目录下,取决于当前选中正样本还是负样本。
  
  完成界面如图:
  
  第一步:把MFC界面的那些控件都拖动好并且绑定好opencv图形框
  
  在MFC的初始化函数中添加我们的绑定代码:
  
  复制代码
  
  BOOL CpicroiDlg::OnInitDialog()
  
  {
  
  CDialogEx::OnInitDialog();
  
  // 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动
  
  //  执行此操作
  
  SetIcon(m_hIcon, TRUE);            // 设置大图标
  
  SetIcon(m_hIcon, FALSE);        // 设置小图标
  
  //InitializeSkin(("Minimized.ssk"));//初始化
  
  // TODO: 在此添加额外的初始化代码
  
  namedWindow("ImageShow", CV_WINDOW_KEEPRATIO);          // 用OpenCV创建一个窗口
  
  CRect cWindowRect;
  
  m_PictureControl.GetClientRect(&cWindowRect);           // 获取控件窗口大小
  
  //int nWindowWidth = cWindowRect.Width();
  
  //int nWindowHeight = cWindowRect.Height();
  
  //resizeWindow("ImageShow", 200, 100);
  
  HWND hPictureWindow = (HWND)cvGetWindowHandle("ImageShow");        //  获取OpenCV窗口的句柄
  
  HWND hParentWindow = ::GetParent(hPictureWindow);
  
  ::SetParent(hPictureWindow, GetDlgItem(IDC_PIC)->m_hWnd);   //  关联OpenCV窗口和MFC的控件窗口
  
  ::ShowWindow(hParentWindow, SW_HIDE);
  
  GetDlgIt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值