OpenCV + MFC 鼠标键盘控制截取图像
来源:互联网 发布:淘宝助理5.6.9 编辑:程序博客网 时间:2024/05/02 01:03
前面用Matlab完成过这样的工作,但是win7+64位系统上写的到了XP上用不了,也就懒得再继续了。直接用OpenCV和MFC写了,很简陋的界面和功能,倒也很快就完成了。还是那个想法,记录下留个纪念,能对别人有所帮助就更好了。
因为有图像的操作,OpenCV还是很不错滴。在写的过程中,发现OpenCV对于鼠标键盘响应的操作也是灰常的便利呀。看来我真是孤陋寡闻呀… ^O^|||
我的环境是win7 64位 + VS2010 + OpenCV 2.4.10
列一下几个参考的网页:(鼠标、键盘控制,文件路径选择)
鼠标绘制
键盘控制
文件路径选择
还是先来看一下一如既往“简丑”(简单丑陋)的界面吧~
文件路径选择,这个是直接从网上找的文件夹选择对话框 SelectFolderDlg.h
,可以直接选择文件夹获取路径:
CString strFolderPath = CSelectFolderDlg::Show();
PS.这个头文件的介绍可以参考上面的链接,原博主写的很详细,感谢分享。
开始截图,这个简单,就直接上代码了。
/************************************************************************//* == 开始剪切图像,根据选择的读取文件夹,逐个读取图像,截取并且存储 == *//************************************************************************/void CMy0817_CutImgMFCDlg::OnBnClickedBtnbegintocut(){ DispImgs(FileCount); int SaveFlag = 1; char DispSaveName[30]; CString StrSaveName; while(1) { int key = waitKey(10); switch(key) { case 'a': //== 前一幅图像 ==// FileCount --; if (FileCount < 0) { MessageBox(_T("第一幅图像!"),_T("提示"),MB_OK | MB_ICONWARNING); FileCount ++; } DispImgs(FileCount); SaveFlag = 1; SetDlgItemInt(IDC_EDITIMGNO,FileCount+1); UpdateData(FALSE); break; case 'd': //== 下一幅图像 ==// FileCount ++; if (FileCount >= FileNum) { MessageBox(_T("最后一幅图像!"),_T("提示"),MB_OK | MB_ICONWARNING); FileCount --; } DispImgs(FileCount); SaveFlag = 1; SetDlgItemInt(IDC_EDITIMGNO,FileCount+1); UpdateData(FALSE); break; case 's': //== 存储图像 ==// SaveCutImgs(FileCount,SaveFlag); sprintf_s(DispSaveName,sizeof(DispSaveName),"Save %d_%d.jpg",FileCount,SaveFlag); StrSaveName = DispSaveName; m_EditSaveFlag.SetWindowTextW(StrSaveName); SaveFlag ++; break; case 27: destroyAllWindows(); break; default: break; } UpdateData(FALSE); } }
键盘按键:
- a 前一副图像
- d 后一副图像
- s 存储截图
- ESC 退出,销毁所有窗口
Q? 这里有个问题还没有弄明白,当OpenCV显示的窗口都关闭后,MFC的界面就会卡死,为什么呢?
其他的就没什么可以介绍的了,这个功能太简单了。后续待更新吧。
最后,还是附上源工程以及可执行文件。
源工程
可执行文件EXE
2015年8月26日 于西直门
0 0
- OpenCV + MFC 鼠标键盘控制截取图像
- opencv 鼠标截取图像
- OpenCV鼠标绘制矩形和截取图像的矩形区域
- opencv鼠标绘制矩形和截取图像的矩形区域
- OpenCv截取图像
- opencv图像反转/截取
- MFC 鼠标和键盘
- 用键盘控制鼠标
- JAVA控制鼠标键盘
- 键盘控制鼠标
- python键盘、鼠标控制
- 键盘、鼠标控制小球
- C#控制鼠标键盘
- 鼠标截取图像c++风格
- Opencv鼠标截取图片场景
- Opencv鼠标截取图片场景
- 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- opencv-- 使用鼠标绘制矩形并截取和保存矩形区域图像
- webapi 返回Json数据格式中的null值替换
- 使用Qt(mingw)编译FreeType为 .a 静态库
- Windows下如何将cmd命令添加到右键菜单
- Scrapy学习笔记(三)
- HDU 3068 manacher算法(O(n)的最长回文串算法)
- OpenCV + MFC 鼠标键盘控制截取图像
- mysql5.6 Zip格式配置方法
- hdu2095 find your present (2)(异或)
- Unity3D圣典学习【2】之CharacterController
- WCF实战第一示例
- HDU 1158 dp
- hdoj 3376 Matrix Again and hdoj 2686 Matrix 【最大费用最大流】
- Android UI设计之Color搭配
- 城市选择插件研究(个人研究用——转载至他人文章)