【问题标题】:How to count number of matching object in image in Matlab如何在Matlab中计算图像中匹配对象的数量
【发布时间】:2017-07-13 14:29:52
【问题描述】:

我有一个任务,我应该计算一组扑克牌图像中的花色数量(钻石、梅花等)。例如,我在 Matlab 中使用 imcrop 从我的原始图像创建了一个模板子图像用于钻石。我还以灰度转换了原始图像或目标图像。 我正在尝试在目标图像中找到子图像的匹配并计算目标图像中相应的钻石。

有人有什么建议吗?

我尝试使用 normxcorr2 我得到了一个可以看到最高峰值区域的图,但我不知道如何计算它。

算法的任何建议。

谢谢。

【问题讨论】:

    标签: matlab playing-cards template-matching


    【解决方案1】:

    看看Detect repetitive pixel patterns in an image and remove them using matlab中的方法A)(免责声明:我是作者)。删除 rect 行并将变量 template 替换为您的 (BW) 模板。跳过最后 3 个命令,而只计算有多少个峰值:

    idx = bwmorph(idx,'shrink',inf);
    numberOfObjects = sum(idx)
    

    显然,您必须大幅调整一些值才能获得良好的结果 - 模式检测并非易事。

    【讨论】:

    • 嗨,当你说“跳过最后 3 个命令”时,这意味着我必须跳过扩张、复制和填充功能?我已经尝试过它似乎表现良好的代码,但是我没有在工作区上得到输出。我使用了“s= fprintf('\n 钻石总数:%f', num2str(numberOfDiamonds));”我得到了很长的价值循环。有什么建议吗?
    • 跳过repmat之后的所有内容。 s = fprintf() 只获取字节数。如果您想在控制台中显示它,fprintf('total number of diamonds:%d \n' , numberOfDiamonds) 应该这样做。否则,请参阅 fprintf 文档以获取有关如何将其写入文件的示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多