我使用的代码应该是按照文档工作的,但我遇到了错误。
目标是使用
终端输出:
piq
Python库计算特征相似性指数测量(FSIM)。终端输出:
TiffPage 1: ByteCounts tag is missing
Traceback (most recent call last):
File "...\.venv\lib\site-packages\IPython\core\interactiveshell.py", line 3441, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-2-3044cfc208ce>", line 1, in <module>
runfile('.../stackoverflow.py', wdir='...')
File "...\plugins\python\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File "...\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File ".../stackoverflow.py", line 15, in <module>
main()
File "...\.venv\lib\site-packages\torch\autograd\grad_mode.py", line 27, in decorate_context
return func(*args, **kwargs)
File ".../stackoverflow.py", line 10, in main
fsim_index: torch.Tensor = piq.fsim(x, y, data_range=1., reduction='none')
File "...\.venv\lib\site-packages\piq\fsim.py", line 84, in fsim
pc_x = _phase_congruency(
File "...\.venv\lib\site-packages\piq\fsim.py", line 241, in _phase_congruency
imagefft = torch.rfft(x, 2, onesided=False)
AttributeError: module 'torch' has no attribute 'rfft'
代码:
from skimage import io
import torch
import piq
@torch.no_grad()
def main():
x = torch.tensor(io.imread('scikit_image\cover\cover_1.tiff')).permute(2, 0, 1)[None, ...] / 255.
y = torch.tensor(io.imread('scikit_image\stego\stego_1.tiff')).permute(2, 0, 1)[None, ...] / 255.
fsim_index: torch.Tensor = piq.fsim(x, y, data_range=1., reduction='none')
print(fsim_index)
if __name__ == "__main__":
main()