【问题标题】:MATLAB Image Mass and InertiaMATLAB 图像质量和惯性
【发布时间】:2017-03-10 05:17:49
【问题描述】:

我有一段代码,我正在努力理解。它是由我的同事给出的,我正在为她为什么采用她的方式而苦苦挣扎。在 cmets 中,她提到变量 inertai1 给出了均匀性因子。我想知道这如何提供图像的一致性。

代码背景: 最初它是一个 2D 图像。添加每列中的强度值,我得到一个一维向量。然后将所有值除以一维向量中的最大值。基本归一化。

如果我是读取的图像。我的值从 0 到 255。

S = sum(I,2); Smax = max(S);
Cprofile = S/Smax;

I2 = I*10; 
I2(I2>255) = 255;
S2 = sum(I2,2); S2max = max(S2);
Cprofile2 = S2/S2max;
kCprofile2 = fft(Cprofile2); 
//Do some frequency manipulations
Cprofile2_f = ifft(kCprofile2)

inperpx 是每像素英寸。

b1 和 d1 是我感兴趣的 Cprofile 的第一个和最后一个索引。

 inertia1=0;
    mass1=0;

    for ii=b1:d1;
        mass1=mass1+inperpx*Cprofile(ii);
        inertia1=inertia1+abs(Cprofile2_f(ii)-Cprofile(ii))*inperpx;
    end

    inertia1=1-inertia1/mass1; 

【问题讨论】:

  • 你想弄清楚什么?
  • 更新问题:试图理解代码背后的物理意义
  • inperpxCprofile2_f的定义是什么?
  • 你可以省略inperpx而不改变输出。
  • @rayryeng 添加了一些代码

标签: matlab image-processing


【解决方案1】:

假设您遗漏的“做一些频率操作”部分移除或降低了高频(即应用低通滤波器),那么那里的循环计算输入和平滑版本之间的绝对差之和。图像中高频分量越多,绝对差之和越大,图像的“均匀性”越差。

请注意,mass1=sum(Cprofile(b1:d1))inertia1 的类似语句可以计算相同的值。乘以inperpx 是没有用的,因为这两个值的缩放比例相同,然后您将两者相除,从而使缩放变得毫无意义。

还请注意,I(I>255) = 255 语句可以删除,因为您不能在之后使用I。也许这应该是I2(I2>255) = 255

【讨论】:

    猜你喜欢
    • 2019-08-23
    • 2010-11-19
    • 2010-12-03
    • 2012-01-07
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多