如何确定两个相同大小的jpg图像是否具有超过matlab不同像素的30%?

问题描述:

或者是否有内置功能可以完成这项工作?如何确定两个相同大小的jpg图像是否具有超过matlab不同像素的30%?

不,没有我知道的内置函数。有可能是某种东西,但为什么他们会写这么基本的东西呢?为什么我说这是基本的?假设你做了两个图像之间的直接比较?

IM1 == IM2 

的彩色图像是MxNx3阵列,典型地由UINT8值。所以这个测试会产生一个MxNx3布尔数组。如果两者的所有三个通道对于任何特定像素都是相同的,那么该像素是相同的。因此,我们全部应用于上述结果的第三维...

all(im1 == im2,3) 

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

sum(sum(all(im1 == im2,3))) 

现在,您可以将该数字与图像中总像素数量的30%进行比较。我会让你弄清楚如何做到这一点。

习惯使用基本的向量化构建模块在MATLAB中构建解决方案。