我想找到一些现有的代码/库,用于估计普通图像的清晰度/模糊度。 (建议使用Python)以后,我将需要比较不同算法的性能。
我有10000多个具有不同“质量”(清晰度/模糊度)的MRI扫描图像。我需要编写代码来过滤具有特定于用户的“质量”(清晰度/模糊度)的图像。因此,我正在尝试研究医学图像上的图像清晰度/模糊度估计。我的主管告诉我,互联网上有很多现有代码可用于对普通图像(可能是无参考清晰度)进行清晰度/模糊度估计。她让我搜索它们,然后先在普通图像上尝试。然后尝试了解他们的算法。我在互联网上对此进行了搜索,并找到了一些相关的页面。但是,其中许多已过时。
例如:上Image sharpness metric页面,
模糊检测的累积概率(CPBD)https://ivulab.asu.edu/software/quality/cpbd
似乎不再起作用。我猜想原因是从新的“ scipy”库中删除了“ imread”功能。 (请参阅后面的代码和错误消息)我想以后可以尝试使用旧版本的“ scipy”。但是,我想找到更多有关图像清晰度/模糊度估计的当前可用代码/库。另外,我的工作环境将在Windows 10或CentOS-7中。
我已经在CPBD上尝试了以下代码:
import sys, cpbd
from scipy import ndimage
input_image1 = ndimage.imread('D:\Work\Project\scripts\test_images\blur1.png', mode='L')
input_image2 = ndimage.imread('D:\Work\Project\scripts\test_images\clr1.png', mode='L')
print("blurry image sharpness:")
cpbd.compute(input_image1)
print("clear image sharpness:")
cpbd.compute(input_image2)
来自Python 3.7 Shell的错误消息(在Windows 10中运行:]
Traceback (most recent call last):
File "D:\Work\Project\scripts\try_cpbd.py", line 1, in <module>
import sys, cpbd
File "D:\Program_Files_2\Python\lib\site-packages\cpbd\__init__.py", line 3, in <module>
from .compute import compute
File "D:\Program_Files_2\Python\lib\site-packages\cpbd\compute.py", line 14, in <module>
from scipy.misc import imread #Original: from scipy.ndimage import imread
ImportError: cannot import name 'imread' from 'scipy.misc' (D:\Program_Files_2\Python\lib\site-packages\scipy\misc\__init__.py)
似乎一段时间以来cpbd软件包尚未更新。它通过以下步骤为我工作:
编辑“ D:\ Program_Files_2 \ Python \ lib \ site-packages \ cpbd \ compute.py”:
注释最后四行以:开头>
#if __name__ == '__main__':
使用python代码:
import cpbd
import cv2
input_image1 = cv2.imread('D:\Work\Project\scripts\test_images\blur1.png')
input_image1 = cv2.cvtColor(input_image1, cv2.COLOR_BGR2GRAY)
print("blurry image sharpness:")
cpbd.compute(input_image1)