JMP中大象脚的图像分析这是大象脚底的图片。您可能会从看这张图片时猜到,这不是一头快乐的大象。被囚禁的大象经常将时间花在人行道或其他坚硬的地面上。这不是它们习惯的底材,也不是大象脚的设计目的。因此,这只大象的脚上已经长了疮,在某些情况下,这些疮甚至被感染了。这只大象的看守者正在提供治疗,但是大象继续走路,导致进一步的伤害。因此,看管人想知道这些治疗方法是否有帮助。

我收到了这张照片的副本,其中包含有关图像分析的问题: 有没有一种方法可以量化地测量脚的状况,以便随着时间的推移可以确定治疗是否有积极效果?
看一下图像,我可以看到脚的所有区域基本上属于以下三类之一:
有些区域呈褐色,代表大象脚的正常颜色。这些地区很健康。有些区域有些橙色。这些是发生疮的地方。然后在疮内有发白区域。这些地方疮已发展成感染,现在充满脓液。通过将整个脚归入这三个桶中,我觉得我们可以衡量脚的状况了。重要的是要忽略背景,即图像中那些不显示脚底的区域,以免歪曲我们的结果。
我将图像读入JSL(JMP脚本语言),并从图像中获得了像素值红色 ,绿色和蓝色 ( RGB )值作为单独的矩阵。然后,我可以将这些单独的矩阵转换为一个表示所有三个颜色分量的矩阵。
img = 新图片 ( “ elephantFoot.jpg” );
{r,g,b} = img << getPixels( “ rgb” );
colr = RGB颜色 (r,g,b);
但是通常情况下,最好使用除RGB以外的其他配色方案来分析颜色。所以我真的想要一种称为 HLS ,代表色调 ,亮度和饱和 。色调基本上是颜色的色调,亮度是亮度,饱和度是多少颜色而不是白色。幸运的是,JMP提供了一种从RGB转换为HLS的方法。
{色相,点亮,坐下} = ColorToHLS (colr);
现在,我在HLS中有了颜色,我可以创建一个包含像素值的JMP数据表。
dt = 新表 ( “像素数据” ,
newColumn ( “色调” ,设置值(色相)),
newColumn ( “轻” ,设置值(lit)),
newColumn ( “星期六” ,设置值(星期六))
);
这样做的原因是,我可以使用JMP的某些统计能力来分析我的数据。我很好奇颜色值的细分,因此决定创建一个分配每个颜色成分。
分布(连续分布( 柱 (:hue),离群盒图 0 )));
分布(连续分布( 柱 (:lit),离群盒图 0 )));
分布(连续分布( 柱 (:sat),异常值箱图( 0 )));
这是结果。

通过查看“分布”,我可以很好地猜测要在数据中查找哪些值以识别哪些像素是棕色,橙色或白色。我处理每个像素,由数据表中的一行数据表示,并且能够对每个像素进行分类。然后我可以报告我的结果 。

为了生成报告,我选择了所有缺失值(代表背景区域的所有像素)并将其设置为隐藏/排除。然后,我从像素数据表生成了一个汇总表。然后,我可以使用Graph Builder来生成我的图形。
结果是大约一半的脚处于良好状态。对于不正常的一半,约有30%的人发展为疮,其余20%被感染。现在,我们可以对脚的状况进行量化测量。通过随着时间的推移进行此操作,我们可以确定脚部状况并知道治疗是否有帮助。
大象脚的形象是通过一个名为 WildTrack 。WildTrack致力于保护濒危物种以及野生动物的整体福祉。
WildTrack是JMP客户,将在即将进行的网络广播中播放,分析性地讲 。如果您发现此博客文章有趣,建议您注册并参加网络广播。我可以向您保证,他们的谈话总是引人入胜且内容丰富。和往常一样,请让我知道您的想法。
约翰·庞特(John Ponte)写道:桑迪普(Sandeep),该链接发布于我之前的...约翰·庞特写道:
Sandeep,我上次回复中发布的链接是指向描述该技术的视频的链接( https://www.youtube.com/watch?v=wSkUwgNbv2g )。您还可以在JMP File Exchange上找到一些对您有帮助的JSL代码。在脚本下查找ImageToDatatable.jsl( https://community.jmp.com/docs/DOC-6100 )。这将向您展示如何打开图像并根据像素值生成数据表。或者,您可以使用图像分析器为您生成数据表( https://community.jmp.com/docs/DOC-7181 )。
顺便说一句,如果您要去探索(两周后在北卡罗来纳州卡里),请与我联系,我会为您提供帮助。我将在开发人员工作站中徘徊。
Sandeep写道:John,您有一个教学视频吗?桑迪普写道:
约翰,您是否制作了一个指导视频来学习这种技术?
约翰·庞特(John Ponte)写道:顺便说一句,JMP发布了YouTube视频...约翰·庞特写道:
顺便说一下,JMP发布了我的YouTube视频,描述了分析大象脚的过程。它包含有关该过程的更多详细信息。如果您发现此帖子有趣,则也可以欣赏该视频。
在这里能找到它: https://www.youtube.com/watch?v=wSkUwgNbv2g
请享用!
约翰·庞特(John Ponte)写道:罗德里戈(Rodrigo),JMP在规范化的工作环境中工作...约翰·庞特写道:
罗德里戈
JMP在归一化的色彩空间中工作,这意味着所有值都在0.0到1.0之间。查看我的色相分布,我发现我的大多数值都低于0.125。但是,我也看到一些高于0.9的值。这样就使我对分离颜色应该寻找的值有了一个想法。
在JSL中,您需要做的是遍历每一行(代表一个像素),查看色相和光的值。就您而言,您将寻找绿色,黄色和棕色。黄色和棕色的色相值非常相似,因为它们都由相等数量的红色和绿色组成。它们的区别在于其亮度,或者在这种情况下是光的值。黄色的亮度要比棕色的高。绿色将具有比黄色和棕色更高的色相值。因此,使用色相和亮度值,您应该能够区分颜色。
查看光线的分布情况,看看是否有三个不同的分组。最高值可能是您的黄色像素,最低值可能是您的棕色像素,而两者之间的值可能是您的绿色像素。首先,看看是否能给您正确的答案。您可以像制作大象脚一样来生成新图像,以验证您的答案。如果您没有得到正确的答案,则可以在比较中调整值范围。
我希望这有帮助!
罗德里戈(Rodrigo)写道:亲爱的约翰,我听了你的剧本后得到...罗德里戈写道:
亲爱的约翰,
我遵循了您的脚本,并获得了H,L,S的像素值。现在,我需要处理每个像素并识别出绿色,黄色和棕色。我该怎么做?我在这部分中迷失了:“通过查看分布,我可以很好地猜测要在数据中查找哪些值以识别哪些像素是棕色,橙色或白色。我处理每个像素,由数据表中的一行数据表示,并且能够对每个像素进行分类。然后,我可以报告我的结果。”
任何建议将被认真考虑。谢谢!
约翰·庞特(John Ponte)写道:一句话-手动!我收到很多...约翰·庞特写道:
一句话-手动!我从人们那里收到很多图像,询问他们如何识别图像中感兴趣的区域。不幸的是,我不能花费我想要或不需要的时间来开发一个完整的解决方案。因此,我尝试为他们提供快速解决方案,以及有关如何进一步开发它的想法。快速解决方案是使用另一个软件包(我使用Gimp)简单地将背景涂黑。但是在JMP / JSL中,您可以开发不同的边缘检测技术,从而可以为您识别大象脚的边缘。实际上,我已经在WildTrack所做的一些工作中演示了此示例,他们在图像中识别出动物的脚印。您可以在这里找到有关此视频: http://www.youtube.com/watch?v=VjjcdCDXx9M
斯科特(Scott)写道:约翰(John)做得好!我很惊讶JMP可以...史考特写道:
约翰,太好了!我很惊讶JMP可以用于如此多样化的应用程序。
我很好奇您如何删除图像的背景。当背景不均匀时,如何识别背景像素?
约翰·庞特(John Ponte)写道:好吧,首先让我消除关于...的神话约翰·庞特写道:
好吧,首先让我消除我是专家的神话!虽然,如果您看到我的老板,我鼓励您告诉他您认为我是。并感谢您这样说。
其次,虽然我熟悉MATLAB,但是我对它的了解还不足以在两种产品之间进行有效的比较。我已经与许多同时使用MATLAB的JMP用户进行了交谈,他们似乎对此感到满意。对于那些用户(警告),请确保您签出了JMP 11版中的一些新功能。
除了统计功能之外,我真正喜欢的JMP功能之一就是JMP的脚本语言JSL。这篇文章展示了如何将图像导入JMP并使用JSL将其转换为数据表。一旦将图像作为数据,就可以使用JMP的所有统计功能。现在,您可以使用例如判别分析或聚类分析图像。我目前正在阅读有关此主题的书。F.Brent Neal和John C.Russ将其称为“测量形状”。因此,我认为这些功能的组合使JMP成为用于图像处理的强大工具。它允许用户创建自己的解决方案,而无需实际实现功能。
阿米特·博特拉(Amit Bothra)写道:嗨,约翰,很棒的帖子。我为...感到惊讶阿米特·博特拉写道:
你好,约翰,
很棒的帖子。我对JMP的功能感到惊讶。作为专家,您如何将JMP的图像处理功能与某些专用软件(例如Matlab)进行比较。
Sky&Zoe写道:这是一个很好的例子,说明了如何进行分析...天空与佐伊写道:
这是一个很好的例子,说明了如何将JMP的分析能力用于改善病理学治疗的决策。如此多的医学成像仍然依赖于专家的视觉评估而不是量化。
此应用程序一旦完善,将在标准化评估伤口愈合方式(或其他方式)随着时间的推移中具有很大的应用价值。John具有开箱即用的思维能力,我们相信他为JMP成像所做的工作将在整个领域中得到广泛应用。
约翰·庞特(John Ponte)写道:当答案...约翰·庞特写道:
当答案也达到正常水平的50%时,我感到有些惊讶。但是后来我意识到,坏区域(橙色和白色)显示为较大的区域,而好区域(棕色)则显示为较小的部分,较长且围绕坏区域。我认为,当您看到许多较小的区域而较少的较大区域时,人们会认为较大的区域总和会更大。
错误计算是一个好主意。这是我为客户提供的快速(但可用)解决方案。连同该解决方案一起,我给了他们一些有关如何改进它的想法。我不想带走他们所有的乐趣。
感谢您的评论!
斯科特·摩尔(Scott Moore)写道:非常酷。有几点想法。e ...斯科特·摩尔写道:
很酷。有几点想法。眼睛非常擅长分析模式。我本来以为棕色看起来比图片要高35%。如果您先在分析之前进行假设,然后进行比较,那将很有趣。我还希望看到某种错误计算。很好的过程,但是是解决问题的好方法。