V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Sinnn
V2EX  ›  程序员

求助,如何实现基于图像处理的自动计数,或有偿

  •  
  •   Sinnn · 2015-05-08 21:25:05 +08:00 · 3300 次点击
    这是一个创建于 3489 天前的主题,其中的信息可能已经有所发展或是发生改变。
    开门见山地说,这是楼主现在的毕业设计,以楼主的水平完全无法完成,如果重头开始学图像处理在这个时间点来说也不大现实。所以很希望在程序代码方面能得到帮助。

    整个程序的背景/具体情况就是:对一些钢材的横截面进行拍照,程序能够读取这张图片,并进行一些处理/优化,最终能够自动统计出图片中钢材的数目。钢材横截面是类圆。
    具体用哪种编程语言实现并没有要求,推荐的是 C/C++。

    作为一名学生,这样对待自己学业的态度并不好,但由于个人能力问题也确实很无奈,实在很希望在此能够得到需要的帮助。楼主同时也会给出一定报偿给帮助我的人。这是我的 QQ:690296七75。愿意帮助我的人加的时候备注 v2ex 即可。

    望各位轻喷,谢谢各位。
    12 条回复    2015-05-10 11:04:41 +08:00
    ruoyu0088
        1
    ruoyu0088  
       2015-05-08 21:56:23 +08:00
    把图贴出来,看看难不难。建议用Python,有许多图像处理库。
    likaci
        3
    likaci  
       2015-05-08 22:12:11 +08:00
    感觉做成移动端有戏 手机一拍 然后计算数量
    saberlion
        4
    saberlion  
       2015-05-08 22:43:27 +08:00 via Android
    hough变换,识别这个应该是不成问题的
    billlee
        5
    billlee  
       2015-05-08 23:29:51 +08:00
    qqzj
        6
    qqzj  
       2015-05-08 23:56:45 +08:00
    可以考虑用OpenCV,如果都是链接中图片那样,相交比较少的话,先变成灰度图,取个合适的阈值二值化,再用腐蚀和膨胀操作,最后取个图片中物体的边界,数下多少物体。如果有相交的话,处理要复杂了,需要分割了。
    Sinnn
        7
    Sinnn  
    OP
       2015-05-09 00:11:12 +08:00
    @qqzj
    因为是钢材,所以不存在相交。
    Ghoul2005
        8
    Ghoul2005  
       2015-05-09 00:40:56 +08:00
    和验证码识别类似,但比验证码识别更简单,验证码识别的文章有很多,说得都挺具体的了。

    简单说就是
    1.如果拍的照片是彩色的,先转变成黑白,要考虑转换后能够非常明显地区分圆形的边界。
    2.根据边界切分单元,一个圆形为一个单元,因为不会重叠,但可能存在两个圆埃得很近难以切分的情况。
    到这一步已经能计算一张图片共有多少个圆形了,如果做验证码识别的话还有好几个更加复杂的工序。
    实现的时候还有很多细节要考虑,算法要调参数来修正误差。
    ruoyu0088
        9
    ruoyu0088  
       2015-05-09 07:41:49 +08:00
    连要识别的图都没有,怎么做啊。钢材堆在和你发的那个图差别大了。

    https://www.google.co.jp/search?q=%E9%92%A2%E6%9D%90&source=lnms&tbm=isch&sa=X&ei=f0lNVei1MZPz8QWWlIDoCw&ved=0CAgQ_AUoAQ&biw=1297&bih=695
    northisland
        10
    northisland  
       2015-05-09 10:17:43 +08:00
    思路1:hough变换,但需要想办法把图二值化
    推荐opencv

    思路2:(x,y,b,g,r),聚类试试
    推荐scikit-learn
    northisland
        11
    northisland  
       2015-05-09 10:24:52 +08:00
    忘了说一句,这是图像分割(image segmentation)问题
    貌似mean-shift,max-flow 效果都不错
    dobest
        12
    dobest  
       2015-05-10 11:04:41 +08:00
    赞同楼上所说的思路。如果是类似lz给的图,那不难,可以直接根据颜色二值化(类似聚类),再数符合条件的连通域数量(当然,也可以检测圆形)。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2450 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:55 · PVG 23:55 · LAX 07:55 · JFK 10:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.