基于多模板的图像目标识别

Multi-Template-Matching的Python项目详细描述


多模板匹配 多模板匹配是使用一个或多个较小的模板图像在图像中执行对象识别的包。
模板和图像应具有相同的位深(8、16、32位)和通道数(单/灰度或rgb)。
主函数mtm.matchtemplates返回提供分数阈值和/或图像中预期对象数的最佳预测位置。

安装

使用pip,pip安装多模板匹配 安装后,导入mtm应该可以工作。

文档

MTM包主要包含两个重要功能:

匹配模板

匹配模板(列表模板,图像,方法=cv2.tm_ccoeff_normed,n_object=float("inf"),score_threshold=0.5,maxoverlap=0.25,searchbox=none)

此函数搜索图像中的每个模板,并返回最佳N_对象位置,该位置提供最好的分数,且不重叠在maxoverlap阈值以上。

参数

  • 列表模板:
    要在每个图像中搜索的元组(labelstring、灰度或rgb numpy数组)模板列表,与标签关联

  • 图像:灰度或rgb numpy数组
    要执行搜索的图像,其位深和频道数应与模板相同

  • 方法:int
    opencv模板匹配方法之一(0到5),默认值5=0-平均互相关

  • n_对象:int
    图像中的预期对象数

  • 分数阈值:浮动在[0,1]范围内
    如果n>;1,则分别返回低于/高于分数阈值的本地最小值/最大值

  • maxoverlap:浮动范围[0,1]
    这是一对边界框之间的交集与并集(IOU)面积之比的最大值。 如果比率超过maxOverlap,则会丢弃较低的分数边界框。

  • searchbox:以像素为单位的元组(x,y,宽度,高度)
    作为元组的可选矩形搜索区域

返回

  • 最佳匹配:字典匹配列表{"templatename":字符串,"bbox":(x,y,width,height),"score":float} 如果n=1,则返回与得分阈值无关的最佳匹配项 如果n<;inf,则返回超过分数阈值的n个最佳匹配项 如果n=inf,则返回通过score_阈值的所有匹配项

函数findMatches在没有非最大值抑制的情况下执行相同的检测。

DrawBoxesOnRGB

第二个重要功能是将检测显示为初始图像上的矩形边框。
为了将检测可视化为彩色边框,如果提供了灰度图像,该函数将返回图像的rgb副本。
也可以使用DrawBoxesOnGray在灰度图像上绘制检测边界框(例如生成检测的掩码)。
DrawBoxesOnRGB(图像,列表,框厚度=2,框颜色=(255,255,00),ShowLabel=真,LabelColor=(255,255,0),LabelScale=0.5)

此函数返回图像的副本,其中预测的模板位置作为覆盖在图像上的边框 模板名称也可以显示在showLabel=true的边框顶部。

参数

  • 图像:numpy数组 执行搜索的图像

  • 列表点击:
    MatchTemplates或FindMatches返回的命中列表

  • 箱厚:int
    边框轮廓的厚度(像素)。-1将填充边界框(对遮罩有用)。

  • 框颜色:(int,int,int)
    bou的rgb颜色收线盒

  • showLabel:布尔值,默认为真
    边框的显示标签(字段模板名)

  • 标签颜色:(int,int,int)
    标签的RGB颜色

  • labelscale:浮点,默认值=0.5 按标签大小缩放

返回

  • outimage:rgb图像
    原始图像的预测模板位置显示为边框

示例

有关如何使用该软件包的一些示例,请参阅jupyter笔记本教程 此相关存储库的wiki部分也提供了一些有关实现的信息。

引文

如果您将此实现用于研究,请引用:

多模板匹配:显微镜图像中目标定位的通用工具;
劳伦特•斯维•托马斯,约亨•格里格 biorxiv 619338;doi:
https://doi.org/10.1101/619338

发布

新的github版本会自动存档到zenodo。
doi

相关项目

有关斐济插件的实现,请参见repo
此处适用于使用多模板匹配的knime工作流。

作品来源

这项工作是在jochen gehrig博士的监督下进行的laurent thomas博士项目的一部分:

获取Ditabis AG的一个部门
数字生物医学成像系统公司 弗赖伯格街3号
75179 pforzheim

fish

资金

该项目获得了欧盟"地平线2020研究与创新计划"的资助,该计划是根据玛丽·斯科洛多斯卡·居里(Marie Sklodowska-Curie)的第721537号《影像生活》协议进行的。

ImageInLife玛丽居里

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java未从Facebook OAuth接收名字、姓氏和姓氏   我自己代码中的java ConcurrentModificationException   java在Android上获得单像素TIFF图像   java图形输出中的swing集成弹出窗口“通知”   将数据库表中的所有数据集插入jTable Java   java如何使用Hibernate获取不完整的集合?   打印无法从java连接到打印机   java使用分隔符拆分带引号的字符串   java Axis2禁用严格验证(wsdl2java中的Eosv)允许什么,如何使其更加严格?   java有人能帮我处理循环代码吗   java将JsonObject数组转换为整数   JavaXWiki扩展:检测事件空间创建   java如何设置图表的文本方向以使用poi旋转所有文本?   eche RecyclerView项的java Set自定义字体   java单元测试带有私有构造函数的spring组件,无需注入   用户界面如何在java中动态显示一组多个元素?   如何从java应用程序调用IDL(交互式数据语言)?   Java的内置库实现