kc紫皇
专家
专家
  • 最后登录2016-07-24
  • 发帖数184
  • 金币4935枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
  • 喜欢达人
  • 原创写手
阅读:6369回复:16

MFC/HALCON混合编程系列一_打开图像_简单处理

楼主#
更多 发布于:2014-02-07 16:04
我学习章柯渊博客里面的MFChttp://k594081130.blog.163.com/blog/static/21835901320141138329888/,现在分享一下我的过程
第一步,新建MFC程序
最好是按照下面这么设置然后点击“完成”,就不会报错

图片:1.png

第二步,导出C++代码
第三步,项目设置  
第四步,添加代码
将void action()中的打开图像部分复制到void CMy01Dlg::OnBnClickedButton1()中。代码如下所示:

图片:2.png



将void action()中的打开图像部分复制到void CMy01Dlg::OnBnClickedButton2()中。代码如下所示:


图片:3.png


运行之后如下图所示,但是,此时的窗口不在对话框中。

图片:4.png


这是因为open_window(0,0,Width/2,Height/2,0,"","",&WindowHandle);中所指定的父窗口为0,意味着指定的父窗口为桌面,此时需要将其父窗口改为对话框。为此,在该句所在的响应的函数中添加此句:
   Hlong MainWndID =(Hlong) m_hWnd;
并修改open_window的参数,用MainWndID代替0.

图片:5.png

最后运行得到下图

图片:6.png


[kc紫皇于2014-02-13 22:48编辑了帖子]
附件名称/大小 下载次数 最后更新
01.hdev (2KB)  114 2014-02-07 15:38
dshwtc
初学者
初学者
  • 最后登录2017-07-02
  • 发帖数2
  • 金币24枚
  • 贡献勋章0枚
沙发#
发布于:2014-02-10 15:48
编辑掉。。。。。。。。。。。。。。。。。。。。
[dshwtc于2017-07-02 13:41编辑了帖子]
kc紫皇
专家
专家
  • 最后登录2016-07-24
  • 发帖数184
  • 金币4935枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
  • 喜欢达人
  • 原创写手
板凳#
发布于:2014-02-10 20:12
dshwtc:= =你好,能不能帮我远程配置一下你的这个程序。。有的地方不明白。。QQ312867276。。万分感谢。。回到原帖
额  你可以把错误截图放在 下面看我有没有遇到过
dshwtc
初学者
初学者
  • 最后登录2017-07-02
  • 发帖数2
  • 金币24枚
  • 贡献勋章0枚
地板#
发布于:2014-02-11 09:34
你的1L的链接的博克里面,第一篇《MFC/HALCON混合编程系列一_打开图像_简单处理_〉其中有一句
第七条:这是因为无法读取图像。将要处理的图像复制到工程目录下。再次运行。可以正确的读取图像
然后我没明白是把哪个图像放到哪个位置,以什么命名方式,我试了几个都没成功。


还有就是我知道open_framgrabber的第一个参数为“File”时,打开的位置似乎是halcon自带的images文件下的图像,但是我发现有个C++工程里面没有图像文件,比如halcon自带的例子里面mfc/matching里面的cpp程序,我没搞明白它运行的时候打开的文件的路径是如何选择的?
zhkeyuan
技术员
技术员
  • 最后登录2017-07-23
  • 发帖数33
  • 金币175枚
  • 贡献勋章0枚
4楼#
发布于:2014-02-11 22:33
dshwtc:你的1L的链接的博克里面,第一篇《MFC/HALCON混合编程系列一_打开图像_简单处理_〉其中有一句
第七条:这是因为无法读取图像。将要处理的图像复制到工程目录下。再次运行。可以正确的读取图像
然后我没明白是把哪个图像放到哪个位置,以...
回到原帖

你可以试试这种方式从文件中读取图像:    
        CString seqFile;
        seqFile.Format(".\\Cam%d.seq",nIndex);// Flag 1


        open_framegrabber("File", 1, 1, 0, 0, 0, 0, "default", -1, "default", -1, "default",  seqFile, "default", -1, -1, &m_AcqHandle);// Flag 2


         grab_image(&Image,m_AcqHandle);



其中你要读取的图像的路径放在seqFile文件中。
该文件所在的目录可以在Flag 1处设置。
文件内容为图像所在的路径,一行为一幅图像的路径。如下所示:
## 文件内容开始
E:/Workspace.hdev/Cam 0/Cam0-2013年09月21日15时42分35秒046毫秒.bmp
E:/Workspace.hdev/Cam 0/Cam0-2013年09月21日15时42分44秒406毫秒.bmp
E:/Workspace.hdev/Cam 0/Cam0-2013年09月21日15时42分54秒046毫秒.bmp
##文件内容结束


当然要保证路径下的文件存在才行哦。


希望对你有用!
thc815
技术员
技术员
  • 最后登录2014-06-09
  • 发帖数20
  • 金币123枚
  • 贡献勋章0枚
  • 社区居民
5楼#
发布于:2014-04-10 11:02
您好,按您的方式去做,在生成的时候老是报错,
1>HalconMFCDlg.cpp(162): error C2065: “ho_Image”: 未声明的标识符
1>HalconMFCDlg.cpp(170): error C2065: “ho_Image”: 未声明的标识符
1>HalconMFCDlg.cpp(170): error C2065: “ho_Regions”: 未声明的标识符
1>HalconMFCDlg.cpp(171): error C2065: “ho_Regions”: 未声明的标识符
1>HalconMFCDlg.cpp(171): error C2065: “ho_ConnectedRegions”: 未声明的标识符
1>HalconMFCDlg.cpp(172): error C2065: “ho_ConnectedRegions”: 未声明的标识符
1>HalconMFCDlg.cpp(172): error C2065: “ho_SelectedRegions”: 未声明的标识符

请问这是为什么?谢谢了
kc紫皇
专家
专家
  • 最后登录2016-07-24
  • 发帖数184
  • 金币4935枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
  • 喜欢达人
  • 原创写手
6楼#
发布于:2014-04-10 22:02
thc815:您好,按您的方式去做,在生成的时候老是报错,
1>HalconMFCDlg.cpp(162): error C2065: “ho_Image”: 未声明的标识符
1>HalconMFCDlg.cpp(170): error C2065: “...
回到原帖
你没声明变量啊!
cathyblue023
技术员
技术员
  • 最后登录2015-12-04
  • 发帖数19
  • 金币108枚
  • 贡献勋章0枚
  • 社区居民
7楼#
发布于:2014-04-14 11:30
你的代码写的是:用相机拍照显示,并将处理的图片显示出来。
我想请问,在这个对话框中你可以一直重复的采集吗?我做了一个,但是不能重复的采集,不知道是什么原因
kc紫皇
专家
专家
  • 最后登录2016-07-24
  • 发帖数184
  • 金币4935枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
  • 喜欢达人
  • 原创写手
8楼#
发布于:2014-04-14 22:33
cathyblue023:你的代码写的是:用相机拍照显示,并将处理的图片显示出来。
我想请问,在这个对话框中你可以一直重复的采集吗?我做了一个,但是不能重复的采集,不知道是什么原因
回到原帖
我的可以啊
6334624
初学者
初学者
  • 最后登录2014-09-13
  • 发帖数17
  • 金币63枚
  • 贡献勋章0枚
9楼#
发布于:2014-06-26 01:32
thc815:您好,按您的方式去做,在生成的时候老是报错,
1>HalconMFCDlg.cpp(162): error C2065: “ho_Image”: 未声明的标识符
1>HalconMFCDlg.cpp(170): error C2065: “...回到原帖

你没声明变量啊!

请问楼主,能否给一个声明变量的例子,我是小白,谢谢!
6334624
初学者
初学者
  • 最后登录2014-09-13
  • 发帖数17
  • 金币63枚
  • 贡献勋章0枚
10楼#
发布于:2014-06-28 01:03
6334624:thc815:您好,按您的方式去做,在生成的时候老是报错,
1>HalconMFCDlg.cpp(162): error C2065: “ho_Image”: 未声明的标识符
1>HalconMFCDlg.cpp(170): error C...
回到原帖
已解决,谢谢
soap_zhang
高级工程师
高级工程师
  • 最后登录2017-08-04
  • 发帖数106
  • 金币1777枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
11楼#
发布于:2014-07-17 14:50
楼主可以啊,按照方法完全到底了目的
sigma
技术员
技术员
  • 最后登录2016-10-16
  • 发帖数26
  • 金币173枚
  • 贡献勋章0枚
  • 社区居民
12楼#
发布于:2014-09-03 16:00
你好, 能帮我看下这个问题吗? 打开第二章图片有错误
tangzh
专家
专家
  • 最后登录2016-10-20
  • 发帖数31
  • 金币2352枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
13楼#
发布于:2014-09-30 14:11
[img]file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\596352499\QQ\WinTemp\RichOle\SH7Q376TPP~UIWBHSI]ZL(R.jpg[/img][img]file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\596352499\QQ\WinTemp\RichOle\SH7Q376TPP~UIWBHSI]ZL(R.jpg[/img]

图片:SH7Q376TPP~UIWBHSI]ZL(R.jpg


出现这种情况是怎么回事啊,哪里出错了,图片没有显示在预定区域(读取的图片显示在第一个矩形,图片处理显示在第二个矩形)
2485745797PAN
技术员
技术员
  • 最后登录2017-06-22
  • 发帖数15
  • 金币114枚
  • 贡献勋章0枚
  • 社区居民
14楼#
发布于:2016-10-31 18:27
void action() 中的代码是什么,楼主是不是忘记介绍了
上一页
游客

返回顶部