【问题标题】:Can Someone Explain This Labview Code谁能解释一下这个 Labview 代码
【发布时间】:2016-06-23 04:08:44
【问题描述】:

我修改了一些我在网上找到的 Labview 代码,以便在我的程序中使用。它有效,我几乎了解所有内容,但有一个部分让我感到困惑。这是程序:

此程序拍摄 2 张​​图像,将它们相减,然后返回图片加上百分比差异。我的理解是它拍摄照片,减去它们,将减去的图像转换为彩色像素数组,然后进行数学运算,并将像素与阈值进行比较。它为每个大于阈值的像素添加一个 1,然后将其除以图像大小,然后得出一个百分比。我不明白的部分是数学部分,整个商和余数部分带有“随机”256。因为我不明白如何获得这些数字,所以我有一个百分比,但我不明白它们是什么意思是。这是带有 2 种不同测试的前面板图片。

在顶部,我的百分比为 15,底部的百分比为 96。这告诉我,底部的百分比是“96% 不同”。但是有没有办法确保这是准确的?

我的另一个问题是阈值,因为我也不知道它到底是做什么的。就像如果我将底部图像的阈值更改为 30,我的百分比是 8%,使用相同的图片。

我敢肯定,一旦我理解了商/余数部分,这一切都会说得通,但我似乎无法理解。感谢您的帮助。

【问题讨论】:

    标签: image compare labview


    【解决方案1】:

    我最好的猜测是有人试图用一个数字来描述 2 张图像之间的差异。 remainder-quotient 部分是一种“穷人”方法,将差异的每个 2D 数组元素拆分为 2 个低字节(2 个余数)和高 2 字节字。然后将差的低 2 个字节相加,并将结果添加到高 2 个字节(作为一个字)。也许 3 个不同的字节分别代表相机的不同通道(例如 RGB 颜色)?

    然后,将该值与阈值进行比较,并计算高于阈值的像素数。该数字除以像素总数以计算 %% 差异。所以结果是 %% 的像素,与主图像相差阈值。

    例如如果图像的某个像素是 0x00112233 并且相应的主图像像素的值为 0x00011122,那么与阈值相比的数字是 (0x11 - 0x01) + (0x22 - 0x11) + (0x33 - 0x22) = 0x10 + 0x11 + 0x11 = 0x32 = 50 十进制。

    这是否是最好的比较/差异标准是本主题之外的问题。

    【讨论】:

    • 与上述相同,但答案更简短:它将颜色信息拆分为红色、绿色、蓝色分量,以便可以将它们添加在一起。这是进行字节拆分的一种奇怪方式。我将使用“Color To RGB.vi”或拆分编号功能(这是“Color To RGB.vi”在内部使用的功能)。
    • 谢谢你们两位,我现在更了解整个程序了。为了进一步解释任何有兴趣的人,它需要 2 张图像,减去它们,然后图像变成每个像素的数组。数组范围从 0(黑色)到 16777215(白色)。余商部分将它们转换为它们的 RGB 值并将它们相加(最大值为 765、255+255+255),然后阈值(例如,30%、229.5,我对其进行了一点修改)将每个小于该数字的值变为为 0,高于该数字为 1。它将所有的 1 相加并除以总图片大小,得到一定百分比的光像素。
    猜你喜欢
    • 2017-04-22
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    相关资源
    最近更新 更多