51Halcon机器视觉

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,微信登录

查看: 2659|回复: 4

[已解决] halcon&MFC混合编程&图片脏污检测,求指点

[复制链接]

该用户从未签到

7

主题

21

帖子

476

积分

Rank: 2Rank: 2

积分
476
发表于 2017-8-14 13:41:32 | 显示全部楼层 |阅读模式

51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

您需要 登录 才可以下载或查看,没有帐号?会员注册

x
检测图片上的脏污。halcon可以检测到,MFC不知道哪里不正确,有高人来指点一下么?
附上图片

halcon:(这个是可行的)
read_image (Image, 'C:/Users/N01605/Desktop/1.bmp')
get_image_size (Image, Width, Height)
Sigma1 := 30.0
Sigma2 := 5.0
gen_gauss_filter (GaussFilter1, Sigma1, Sigma1, 0.0, 'none', 'rft', Width, Height)
gen_gauss_filter (GaussFilter2, Sigma2, Sigma2, 0.0, 'none', 'rft', Width, Height)
sub_image (GaussFilter1, GaussFilter2, Filter, 1, 0)

rgb1_to_gray (Image, GrayImage)
rft_generic (GrayImage, ImageFFT, 'to_freq', 'none', 'complex', Width)
convol_fft (ImageFFT, Filter, ImageConvol)
rft_generic (ImageConvol, ImageFiltered, 'from_freq', 'n', 'real', Width)
scale_image_range (ImageFiltered, ImageScaled, 0, 255)
threshold (ImageScaled, Region, 1, 255)
connection (Region, ConnectedRegions)
select_shape_proto (ConnectedRegions, ConnectedRegions, SelectedRegions, 'distance_contour', 1, 999)
opening_circle (SelectedRegions, RegionOpening, 7.5)
dev_display (Image)
dev_display (RegionOpening)


MFC:(看不到效果)
//Halcon13 API
        CRect rect;
        CRect rect2;
        CRect rect3;
        CRect rect4;
        GetDlgItem(IDC_STATIC_IMAGE1)->GetWindowRect(rect);
        GetDlgItem(IDC_STATIC_IMAGE2)->GetWindowRect(rect2);
        GetDlgItem(IDC_STATIC_IMAGE3)->GetWindowRect(rect3);
        GetDlgItem(IDC_STATIC_IMAGE4)->GetWindowRect(rect4);
        m_hWndImage = GetDlgItem(IDC_STATIC_IMAGE1)->GetSafeHwnd();
        m_hWndImage2 = GetDlgItem(IDC_STATIC_IMAGE2)->GetSafeHwnd();
        m_hWndImage3 = GetDlgItem(IDC_STATIC_IMAGE3)->GetSafeHwnd();
        m_hWndImage4 = GetDlgItem(IDC_STATIC_IMAGE4)->GetSafeHwnd();
        OpenWindow(0,0,rect.Width(),rect.Height(),(Hlong)m_hWndImage,"visible","",&m_hWindowHandle);
        OpenWindow(0,0,rect2.Width(),rect2.Height(),(Hlong)m_hWndImage2,"visible","",&m_hWindowHandle2);
        OpenWindow(0,0,rect3.Width(),rect3.Height(),(Hlong)m_hWndImage3,"visible","",&m_hWindowHandle3);
        OpenWindow(0,0,rect4.Width(),rect4.Height(),(Hlong)m_hWndImage4,"visible","",&m_hWindowHandle4);

        //默认加载图像
        HObject Image,GaussFilter1,GaussFilter2,Filter,GrayImage,ImageFFT,ImageConvol,ImageFiltered,ImageScaled,Region,ConnectedRegions;
        HObject SelectedRegions,RegionOpening,ResultImage;
        HTuple Width,Height;
        HTuple sigma1 = 5.0;
        HTuple sigma2 = 30.0;
        //HTuple GausFilter1;

        //ReadImage(&Image,"clip");
        ReadImage(&Image,"C:\\Users\\jackgu\\Desktop\\脏污图片\\1.bmp");
        GetImageSize(Image,&Width,&Height);
        
        
        GenGaussFilter(&GaussFilter1,sigma1,sigma1,0.0,"none","rft",Width,Height);
        GenGaussFilter(&GaussFilter2,sigma2,sigma2,0.0,"none","rft",Width,Height);
        SubImage(GaussFilter1,GaussFilter2,&Filter,1,0);
        DispObj(Image,m_hWindowHandle);//显示高斯滤波后的差分图在第1个控件
        Rgb1ToGray(Image,&GrayImage);
        
        SetPart(m_hWindowHandle,0,0,Height,Width);
        DispObj(GrayImage,m_hWindowHandle2);//显示灰度图在第2个控件

        RftGeneric(GrayImage,&ImageFFT,"to_freq","none","complex",Width);
        ConvolFft(ImageFFT,Filter,&ImageConvol);
        RftGeneric(ImageConvol,&ImageFiltered,"from_freq","none","real",Width);
        ScaleImage(ImageFiltered,&ImageScaled,0,255);
        DispObj(ImageFiltered,m_hWindowHandle3);//显示在第3个
        Threshold(ImageScaled,&Region,1,255);
        
        //DispObj(ImageScaled,m_hWindowHandle);
        Connection(Region,&ConnectedRegions);
        SelectShapeProto(ConnectedRegions,ConnectedRegions,&SelectedRegions,"distance_contour",1,9999);
        OpeningCircle(SelectedRegions,&RegionOpening,7.5);
        DispObj(RegionOpening,m_hWindowHandle4);

1.zip

322.96 KB, 下载次数: 14, 下载积分: 金币 -2

脏污图片

1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

该用户从未签到

7

主题

21

帖子

476

积分

Rank: 2Rank: 2

积分
476
 楼主| 发表于 2017-8-15 15:48:08 | 显示全部楼层
已找到问题出在哪了,窗口配置大小不对,图片没有缩放显示。
还有一个问题,
threshold (ImageScaled,&Region, 1, 255);
connection (Region, &ConnectedRegions);
select_shape_proto (ConnectedRegions, ConnectedRegions, &SelectedRegions, "distance_contour", 1, 999);
opening_circle(SelectedRegions, &RegionOpening, 7.5);
我要如何将这些显示在一张图片里面?
SelectedRegions显示不出来

1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    耍酷
    2020-9-20 16:48
  • 签到天数: 335 天

    连续签到: 2 天

    [LV.8]以坛为家I

    17

    主题

    48

    帖子

    346

    积分

    Rank: 9

    积分
    346

    突出贡献优秀版主荣誉管理论坛元老切换助手验证会员

    发表于 2017-8-16 12:36:49 | 显示全部楼层
    c_cfan 发表于 2017-8-15 15:48
    已找到问题出在哪了,窗口配置大小不对,图片没有缩放显示。
    还有一个问题,
    threshold (ImageScaled,&Regi ...

    你可以把区域concat到一起然后重新排下显示顺序
    disp_obj(Image,WindowHandle)  //图片
    disp_obj(Objests,WindowHandle) //其他所有的区域或者轮廓的元组
    disp_message之类的就可以了。
    图片最大放最下面,上面依次放其他区域或者轮廓,然后放显示的字。
    (注意:请记得set_color,否则你显示的区域或者轮廓可能是白色的)

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    该用户从未签到

    7

    主题

    21

    帖子

    476

    积分

    Rank: 2Rank: 2

    积分
    476
     楼主| 发表于 2017-8-17 09:40:05 | 显示全部楼层
    感谢楼上耐心的指点

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    您需要登录后才可以回帖 会员登录 | 会员注册

    本版积分规则

    建议您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流浏览器浏览本网站

    51Halcon会员技术交流会员技术交流 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用

    有问题需要咨询站长?| 申请友链| 小黑屋| 手机版| Archiver|  

    粤ICP备15095995号-2 粤公网安备44030602000670号

    CopyRight © 2015-2020 51Halcon机器视觉. Tencent Cloud X3.4.

    快速回复 返回顶部 返回列表