Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于评价指标SD的计算 #6

Open
NYCXI opened this issue Oct 19, 2022 · 4 comments
Open

关于评价指标SD的计算 #6

NYCXI opened this issue Oct 19, 2022 · 4 comments

Comments

@NYCXI
Copy link

NYCXI commented Oct 19, 2022

我参考您在SeAFusion提供的评价指标中的matlab实现转换为python代码的实现过程中发现在matlab中存在计算精度不同的情况:
在matlab实现的SD计算方式中,所有的数值范围都被限制在了0-255之间,因此在计算方差的过程中一些值会溢出(0-255)的范围,导致最后计算的结果并不是数学意义上的整个图像的标准差。
使用SD计算SD时,结果通常在8左右,而使用我的python实现时(在没有溢出的情况下)结果的范围在(30-60)左右。
此外,您在SeAFusion中报告的结果也在8左右,而我看到之前的一些论文中报告的结果在(30-60)左右。
不知道您在学习过程中是否注意到这个问题?使用matlab版本的计算方式是否合理?
本人刚刚入门rgb-ir图像融合方向,还请师兄多多指教!

@Linfeng-Tang
Copy link
Owner

不好意思哈 之前一直没有看到issues 之前确实还是没有注意到这个问题 之后确实需要在仔细检查一下 数据的精度问题 不知道你是否方便把你修改过后的程序发我一下呢?

@NYCXI
Copy link
Author

NYCXI commented Nov 6, 2022

下面这个是我修改后的std计算方式(按照标准差的数学定义实现,范围在几十)

def calculate_std(fusion):
    #fusion = cv2.cvtColor(fusion, cv2.COLOR_RGB2GRAY)
    tot = fusion.shape[0] * fusion.shape[1]
    mean = np.mean(fusion)
    sd = np.sqrt(np.sum((fusion - mean) ** 2) / tot)
    return sd

下面这个是按照matlab代码的实现方式(输出结果域matlab相同,范围在8左右)

def calculate_sd(fusion):
    tot = fusion.shape[0] * fusion.shape[1]
    mean = np.mean(fusion)
    deviation = (fusion - mean)

    deviation[deviation < 0] = 0
    deviation = np.around(deviation)

    deviation = deviation * deviation
    deviation[deviation > 255] = 255
    sd = np.sqrt(np.sum((deviation)) / tot)

    return sd

另外,可否添加您的微信进一步交流。

@Linfeng-Tang
Copy link
Owner

加我的QQ吧:2458707789

@NYCXI
Copy link
Author

NYCXI commented Nov 7, 2022

加我的QQ吧:2458707789

已经发送申请,谢谢!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants