小智 5

不,我知道没有内置功能.可能有可能是某种东西,但为什么他们会费心去写一些如此基本的东西呢?为什么我说这是基本的?假设您在两个图像之间进行了直接比较?

IM1 == IM2
Run Code Online (Sandbox Code Playgroud)

彩色图像是MxNx3阵列,通常由uint8值组成.因此该测试将产生MxNx3布尔数组.如果两个中的所有三个通道对于任何特定像素是相同的,那么该像素是相同的.因此,我们将所有应用于上述结果的第三维......

all(im1 == im2,3)
Run Code Online (Sandbox Code Playgroud)

这将是一个MxN阵列.现在,有多少像素相同?由于all都返回一个布尔结果,因此该结果的总和将计算相同的像素.形成二维数组的总和的简单方法是形成总和的总和.

sum(sum(all(im1 == im2,3)))
Run Code Online (Sandbox Code Playgroud)

现在,您可以将该数字与图像中总像素数的30%进行比较.我会告诉你如何做这个部分.

习惯使用基本的矢量化构建块在MATLAB中构建解决方案.