我正在尝试评估一些基本图像过滤算法的复杂性。我想知道你是否可以验证这个理论;
对于像Inverse这样的基本像素滤镜,操作次数随输入的大小(以像素为单位)线性增长,并且
设S =图像边长 设M =#像素输入
反向的顺序为O(M)或O(S ^ 2)。
另一方面,卷积滤波器有一个参数R,它确定邻域的大小,以便在为每个滤波器建立下一个像素值时进行卷积。设R =卷积滤波器的半径
卷积为O阶(M *((R + R * 2)^ 2)= O(M *(4R ^ 2)= O(MR ^ 2)
或者我应该让N =卷积滤波器(邻域)的大小(以像素为单位)?
O(M *(N))= O(MN)
最终,卷积滤波器线性地依赖于像素数和邻域中像素数的乘积。
如果您有任何文件链接已经记录在案,那将非常感谢。
亲切的问候,
加文
答案 0 :(得分:2)
O(MN)似乎是正确的,如果我理解对于图像中的每个像素,卷积是邻域N中像素值的调整,而不管N是正方形。 N可以是最佳拟合三角形...但是为图像中的每个像素调整邻域中的像素,然后O(MN)更有意义,因为依赖性是在源图像中每像素调整的像素中。 / p>
有趣的是,在非常规邻域中,某些像素可能会被邻居掩码调整得比其他像素更多,但O(MN)仍然会有效。
如果邻域是像素P的中心,然后移动到下一个不在邻域中的P(意味着每个像素被转换一次),那么这就不行了。