【问题标题】:Compare and calculate the average of two different images in Matlab在 Matlab 中比较并计算两个不同图像的平均值
【发布时间】:2015-03-26 01:47:48
【问题描述】:

我有两个480x640 图像AB。我想比较它们,其中A 中的每个像素将与图像B 中的同一像素进行比较,然后该像素的结果将放在同一像素位置的C 中(结果仅为0或 1, 0 以防它们具有相同的值,而 1 以防它们具有相同的值。所以C 将是一个仅包含 0 和 1 的 480x640 矩阵。因此,如果有人可以请告知如何做到这一点在 Matlab 中完成?

【问题讨论】:

    标签: image matlab image-processing


    【解决方案1】:

    这应该适用于单通道图像:

    C = bsxfun(@eq, A, B);
    

    正如@Daniel 指出的,对于多通道(彩色)图像,您需要为每个像素添加all

    C = all(bsxfun(@eq,A,B),3);
    

    【讨论】:

    • all(bsxfun(@eq,A,B),3) 用于彩色图像
    • @Daniel 很好,我一直在考虑灰度图像。我会更新的。
    • 为什么还要使用bsxfun?只需使用:C = A==BC = all(A==B,3)
    • @knedlsepp 哈,真的!这似乎有点矫枉过正。 :)
    猜你喜欢
    • 2021-05-18
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    相关资源
    最近更新 更多