首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中有用于图像清晰度或模糊估计的现有代码/库吗?

在python中有用于图像清晰度或模糊估计的现有代码/库吗?
EN

Stack Overflow用户
提问于 2019-10-19 19:41:03
回答 4查看 912关注 0票数 0

我想找到一些现有的代码/库,用于正常图像的清晰度/模糊度估计。(更喜欢Python)稍后我需要比较不同算法的性能。

我有不同的“质量”(锐度/模糊度)的10000+ MRI扫描图像。我需要编写代码来过滤具有特定“质量”(锐度/模糊度)的图像,这取决于用户。因此,我试图对医学图像的图像清晰度/模糊度估计进行研究。我的主管告诉我,在互联网上,对于正常图像(可能是没有参考清晰度的度量),有很多现有的清晰度/模糊度估计代码。她让我先搜索一下它们,然后在普通图像上试用它们。然后试着学习他们的算法。我在网上搜索了一下,发现了一些相关的网页。然而,其中许多已经过时了。

例如:在Image sharpness metric页面上,

模糊检测https://ivulab.asu.edu/software/quality/cpbd累积概率

似乎不再起作用了。我想原因是"imread“函数从新的”new“库中删除了。(请参阅稍后的代码和错误消息)我想我可以稍后尝试旧版本的“can”。但是,我想找到一些关于图像清晰度/模糊度估计的当前可用代码/库。此外,我的工作环境将在Windows 10或CentOS-7中。

我在CPBD中尝试了以下代码:

代码语言:javascript
运行
复制
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)

Python3.7shell中的错误消息(在窗口10中运行):

代码语言:javascript
运行
复制
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)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-10-19 22:05:22

似乎cpbd包从一段时间以来还没有更新。它对我起作用的步骤如下:

编辑"D:\Program_Files_2\Python\lib\site-packages\cpbd\compute.py":

对最后4行进行注释,开头为:

代码语言:javascript
运行
复制
#if __name__ == '__main__':

使用python代码:

代码语言:javascript
运行
复制
import cpbd

import cv2

input_image1 = cv2.imread('blur1.png')

if input_image1 is None:
     print("error opening image")
     exit()

input_image1 = cv2.cvtColor(input_image1, cv2.COLOR_BGR2GRAY)

print("blurry image sharpness:")

cpbd.compute(input_image1)
票数 0
EN

Stack Overflow用户

发布于 2020-06-28 22:05:52

由于scipy.misc.imread从1.0.0开始就不再被推荐,而在1.2.0中被删除,所以我会使用skimage.io.imread (在大多数情况下这是一种插入替代)。

编辑cpbd/compute.py中的代码

代码语言:javascript
运行
复制
import skimage.io

input_image1 = skimage.io.imread('blur1.png')

cv2也能工作(或者其他选项: imageio,PIL,.)但是skimage更容易安装/使用。

票数 0
EN

Stack Overflow用户

发布于 2020-07-10 06:53:43

下面的步骤适用于我:从C:\ProgramData\Anaconda3\Lib\site-packages\cpbd\compute.py打开C:\ProgramData\Anaconda3\Lib\site-packages\cpbd\compute.py或在安装了它的任何地方打开它。您将发现以下代码:

代码语言:javascript
运行
复制
from scipy.ndimage import imread

代之以:

代码语言:javascript
运行
复制
from skimage.io import imread

如果无法保存compute.py文件,那么将其复制到桌面上,以上述方式编辑它,并用它替换C:\ProgramData\Anaconda3\Lib\site-packages\cpbd\compute.py中的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58467372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档