用python计算图像径向平均值的最佳方法是什么?

2023-12-09

我有一张方形图像,例如这个:

Scipy coin demo image

我想计算从位置 (0,0) 开始的每个半径的图像的一维平均值。我已经编写了一些代码来执行此操作,但首先即使对于小图像,它也非常慢,其次我发现其背后的想法也存在一些问题。代码在这里:

import matplotlib.pyplot as plt
import numpy as np
import collections
from skimage import data

image = data.coins()
image = image[:,0:303]
print(image.shape)

projection = {}
total_count = {}

for x_i,x in enumerate(image):
    for y_i,y in enumerate(x):
        if round(np.sqrt(x_i**2+y_i**2),1) not in projection:
            projection[round(np.sqrt(x_i**2+y_i**2),1)] = y
            total_count[round(np.sqrt(x_i**2+y_i**2),1)] = 1
        elif np.sqrt(round(np.sqrt(x_i**2+y_i**2),1)) in projection:
            projection[round(np.sqrt(x_i**2+y_i**2),1)] += y
            total_count[round(np.sqrt(x_i ** 2 + y_i ** 2), 1)] += 1

od = collections.OrderedDict(sorted(projection.items()))
x, y = [],[]

for k, v in od.items():
    x.append(k)
    y.append(v/total_count[k])

plt.plot(x,y)
plt.xlabel('Radius from (0,0)')
plt.ylabel('Averaged pixel value')
plt.show()

代码的结果如下所示:

Result of radius average of picture

有人知道如何改进我的脚本吗?我也不知道为什么在某些情况下会有一些峰值的平均值非常小。我真的很感激一些提示。谢谢!


您可以通过创建半径矩阵来按半径过滤图像R并计算

image[(R >= r-.5) & (R < r+.5)].mean()

where r是您感兴趣的半径。

enter image description here

import numpy as np
import matplotlib.pyplot as plt
from skimage import data

# get some image
image = data.coins()
image = image[:,0:303]

# create array of radii
x,y = np.meshgrid(np.arange(image.shape[1]),np.arange(image.shape[0]))
R = np.sqrt(x**2+y**2)

# calculate the mean
f = lambda r : image[(R >= r-.5) & (R < r+.5)].mean()
r  = np.linspace(1,302,num=302)
mean = np.vectorize(f)(r)

# plot it
fig,ax=plt.subplots()
ax.plot(r,mean)
plt.show()

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用python计算图像径向平均值的最佳方法是什么? 的相关文章

  • 希伯来语中的稀疏句子标记化错误

    尝试对希伯来语使用稀疏句子标记 import spacy nlp spacy load he doc nlp text sents list doc sents I get Warning no model found for he Onl
  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • 为什么我的代码不能根据字典解码加密字符串?

    我有一本字典 其中包含代表字母的键和值 例如一个简单的 DICT CODE b g n a p o x d t y 我收到了一个加密代码 并将该字符串转换为一个列表 其中每个项目都是一个单词 我需要根据字典中的项目来解决它 代码示例是 wo
  • Tweepy StreamListener 到 CSV

    我是 python 新手 我正在尝试开发一个应用程序 使用 Tweepy 和 Streaming API 从 Twitter 检索数据并将数据转换为 CSV 文件 问题是此代码不会创建输出 CSV 文件 也许是因为我应该将代码设置为在实现例
  • 了解 Python 中的酸洗

    我最近接到一项作业 需要以腌制形式放置一本字典 其中每个键引用一个列表 唯一的问题是我不知道腌制形式是什么 谁能给我指出一些好的资源的正确方向来帮助我学习这个概念 pickle 模块实现了一个基本但强大的算法 用于序列化和反序列化 Pyth
  • 更新 Sqlalchemy 中的多个列

    我有一个在 Flask 上运行的应用程序 并使用 sqlalchemy 与数据库交互 我想用用户指定的值更新表的列 我正在使用的查询是 def update table value1 value2 value3 query update T
  • 如何在 Python 3 中循环遍历集合,同时从集合中删除项目

    这是我的情况 我有一个list set 哪个并不重要 movieplayer我想调用的对象 preload 功能开启 该预加载函数可以立即返回 但希望将来返回一点 我想存储这个电影播放器 集合 表明它们尚未预加载 然后循环它们 调用prel
  • 可以用 Django 制作移动应用程序吗?

    我想知道我是否可以在我的网站上使用 Django 代码 并以某种方式在移动应用程序 Flutter 等框架中使用它 那么是否可以使用我现在拥有的 Django 后端并在移动应用程序中使用它 所以就像models views etc 是的 有
  • 模式识别算法

    过去我必须开发一个充当规则评估器的程序 你有一个先行词和一些后续词 动作 所以如果先行词评估为真 则执行的动作 当时我用的是修改版RETE算法 http en wikipedia org wiki Rete algorithm RETE 有
  • Python Pandas 根据另一列的总计从另一个数据帧中选择值

    我下面有一个 DataFrame 但我需要根据取消和订单列从每个代码中选择行 假设代码 xxx 的阶数为 6 1 5 1 阶数为 11 我需要一种算法 可以选择满足总共 11 行的行 阶数为 6 5 如果没有行匹配 则选择最接近的 id 并
  • 为什么我无法在 Mac OS X Terminal.app 上的 Python 解释器中显示 unicode 字符?

    如果我尝试粘贴 unicode 字符 例如中间的点 在我的 python 解释器中它什么也不做 我在 Mac OS X 上使用 Terminal app 当我只是在 bash 中时 我没有遇到任何问题 但在解释器中 python Pytho
  • `list()` 被认为是一个函数吗?

    list显然是内置类型 https docs python org 3 library stdtypes html list在Python中 我看到底下有一条评论this https stackoverflow com a 53645813
  • 如何使用 Django 项目设置 SQLite?

    我已阅读 Django 文档 仅供参考 https docs djangoproject com en 1 3 intro tutorial01 https docs djangoproject com en 1 3 intro tutor
  • 如何使用 sys.path.append 在 Python 中导入文件?

    我的桌面上有两个目录 DIR1 and DIR2其中包含以下文件 DIR1 file1 py DIR2 file2 py myfile txt 这些文件包含以下内容 file1 py import sys sys path append s
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • Python]将两个文本文件合并为一个(逐行)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是蟒蛇新手 我想做的是将文件 a 和文件 b 逐行合并到一个文件中 例如 text file a a n b n c text fi
  • 如何使用 Keras ImageDataGenerator 预测单个图像?

    我已经训练 CNN 对图像进行 3 类分类 在训练模型时 我使用 keras 的 ImageDataGenerator 类对图像应用预处理功能并重新缩放它 现在我的网络在测试集上训练得非常准确 但我不知道如何在单图像预测上应用预处理功能 如
  • 对数据帧的每 2 小时数据进行 Groupby

    我有一个数据框 Time T201FN1ST2010 T201FN1VT2010 1791 2017 12 26 00 00 00 854 69 0 87 1792 2017 12 26 00 20 00 855 76 0 87 1793
  • 为什么 smtplib.SMTP().sendmail 不发送 DKIM 签名邮件

    我已经在服务器上设置了 postfix 以及 openDKIM 当我跑步时 echo Testing setup mail s Postfix test my email address 我收到电子邮件 邮件标题中有一个DKIM Signa
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro

随机推荐

  • 相当于

    与 css 的 valign=center

    我的页面上有以下代码 p align left style font size 10pt display block height 200px Content p 我希望文本在中心垂直对齐p tag Using vertical align
  • protobuf-net :不支持 IExtensible 继承

    似乎无法实施protobuf net通过定义其子类型的类的序列化 ProtoInclude 并实施ProtoBuf IExtensible ProtoBuf ProtoInclude 1000 typeof DerivedClass pub
  • HTML 表单值和“后退”按钮

    如何在点击后退按钮时保留 HTML 表单信息 这是默认的 HTML 或浏览器行为吗 或者它依赖于浏览器 这是默认的浏览器行为 但仅当包含表单的页面可缓存时 例如设置了标头 以便允许浏览器缓存它 SO 的形式如何记住以前的输入值
  • JasperReports:如何在jsp页面中调用报表

    我使用 做了一份 jasper 报告iReport 3 7 4 version 现在我必须在我的 java 应用程序中使用它或调用该报告 我使用 servlet jsp 和 struts 框架 apache tomcat 作为服务器 我想要
  • 比较过程的内容,而不是结果

    使用 Ruby 1 9 2 Problem比较两个过程的内容 而不是结果 我了解结果无法测试 因为停止问题但没关系 反正我也不想测试结果 例如 proc x x proc x x gt false doh 这会返回 false 因为过程中的
  • 使用节流(“gopkg.in/throttled/throttled.v2”)库时出现错误

    当我尝试使用安装节流时go get命令 go get github com throttled throttled 我收到错误 can t load package package github com throttled throttle
  • 为什么 `object.__init__` 不带参数

    为什么不object init take args kwargs作为论据 据我所知 这以一种非常烦人的方式破坏了一些简单的代码 没有任何好处 假设我们要确保所有 init 调用所有父类的 只要每个 init 遵循调用的简单约定super i
  • 文本输入中的最小最大数字 - Jquery/javascript

    我想设置在文本输入中输入的最小和最大允许数字我知道我可以使用范围输入来做到这一点 但在不兼容的浏览器中使用时它仍然有最大和最小吗 如果没有 请为我指出正确的方向 感谢您的阅读 Use jquery 验证器插件 它有一组很好的功能 还有最小最
  • 有向无环图中的最长路径

    如何找到没有权重的 DAG 中的最长路径 我知道如果 DAG 是拓扑排序的 则可以在线性时间内找到从 A 到 B 的最长路径 但我需要找到所有图中的最长路径 有没有比搜索所有顶点对之间的最长路径 这将是 O n 3 更快的方法 这与寻找关键
  • App Engine 对除 root 之外的任何路径抛出 404 Not Found

    我想将我的 App Engine 实现拆分为多个文件 所以我在 app yaml 文件中写道 runtime python27 api version 1 threadsafe true handlers url imageuploader
  • 删除 TFS 2010 中的孤立身份

    我正在将 TFS 2010 安装从一台计算机移动到另一台计算机 我发现可以使用以下命令重新映射身份TFSConfig Identities change命令 但我没有找到删除我不再需要的孤立用户身份的方法 我知道也许我可以把它们留在那里 但
  • java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver错误[重复]

    这个问题在这里已经有答案了 try Class forName sun jdbc odbc JdbcOdbcDriver String cString jdbc odbc Driver Microsoft Access Driver mdb
  • 使用 apache poi 读取 Excel 文件时出现异常

    当我尝试使用 apache poi 读取 Excel 2007 文件 xlsx 文件扩展名时出现问题 InputStream file new FileInputStream C test xlsx gt XSSFWorkbook work
  • 用于会话检查的 Java FilterImplementation

    我使用 JSF Hibernate Spring 创建一个 Web 应用程序 我添加了一个过滤器来检查会话 我的过滤器代码是 public class AdminFilter implements Filter private ArrayL
  • Geb/Selenium 测试挂起加载新页面

    我的 Selenium 测试经常无限期地挂在 CI 上 总是尝试加载新页面driver get 我正在使用 PhantomJS 1 9 8 经过几轮调试 我想我已经将问题追溯到 PhantomJS 中网页加载未完成的问题 Selenium
  • 保存文本文件

    我想将矩阵保存为具有可变文件名的 text 目前我正在使用函数 dlmwrite name matrix 保存文件 这仅适用于预设的文件名 有没有办法让文件名可变 理想的情况是 弹出一个窗口 要求输入要写入的文件名 就像 Uigetfile
  • 如何更改按钮上的波纹背景颜色?

    到目前为止 在 API 中 v3 9 2 我看到提到TouchRippleProps for ButtonBase for https material ui com api button base 我的按钮看起来像
  • 空手道自动设置 Content-Type 标头 [重复]

    这个问题在这里已经有答案了 再会 在我的负面测试用例中 我必须 PUT 一个没有 Content Type 标头的请求 以便匹配所需的 4xx 状态代码 问题是空手道会自动设置适当的内容类型 例如 当我传递 作为请求时 它设置 applic
  • 导入 matplotlib.pyplot as plt 失败并出现有关 python-tk 的错误

    我尝试导入 matplotlib pyplot 但是收到与未安装 python tk 相关的错误 它似乎已安装 但我似乎仍然收到错误 任何帮助都会得到帮助 有关更多信息 输出如下 非常感谢 ipython Python 2 7 7 defa
  • 用python计算图像径向平均值的最佳方法是什么?

    我有一张方形图像 例如这个 我想计算从位置 0 0 开始的每个半径的图像的一维平均值 我已经编写了一些代码来执行此操作 但首先即使对于小图像 它也非常慢 其次我发现其背后的想法也存在一些问题 代码在这里 import matplotlib