python - MATLAB 的“improfile”函数是否有 Python 等价物?
问题描述
我正在尝试生成高斯拟合来描绘激光束横截面图像的光束强度。我知道如何使用 MATLAB 的函数轻松做到这一点improfile
,它让我可以用鼠标指定线段并绘制强度值与沿线段的距离的关系。是否有 Python 等价物可以让我完成相同的任务?
解决方案
是的,有:包中profile_line
的功能skimage.measure
。我在 MATLAB 中没有图像处理工具箱,因此我也无法使用 MATLABsimprofile
函数显示该示例,但它的工作方式与skimage
s相同profile_line
。
例如:
import matplotlib.pyplot as plt
import numpy as np
from skimage.measure import profile_line
from skimage import io
# Load some image
I = io.imread('265173ab144040477cc4d41606b36cd6.jpg', as_gray=True)
# Extract intensity values along some profile line
p = profile_line(I, (45, 30), (160, 30))
# Extract values from image directly for comparison
i = I[45:161, 30]
plt.plot(i)
plt.ylabel('intensity')
plt.xlabel('line path')
plt.show()
在剖面强度图中,两个阵列都在彼此之上
证明:
>>> np.array_equal(p, i)
True
推荐阅读
- java - 通过使用 AWS Lambda,我们可以对公开的 URL 进行 POST 调用吗
- html - 从画布中的直线点查找曲线点
- visual-studio - 如何停止 Visual Studio 2017 在分屏模式下打开源代码
- php - Laravel 5 JSON Foreach 不起作用
- python - 在基于 trio 的 Python 应用程序中生成进程并在进程之间进行通信
- jquery - 无法使用 jquery 数据表获取行数据
- c# - 我应该在单元测试中使用依赖注入容器吗?
- dart - Flutter camera frame drops when switching between pages
- javascript - 如何检查 html 元素是否包含它自己的文本(包含 textNode)
- oracle - Function to query data import date when there is no "created at" column in Oracle