Skip to main content
 首页 » 编程设计

python之MATLAB 的 'improfile' 函数是否有 Python 等效项

2024年11月01日3me-sa

我正在尝试生成高斯拟合来描绘激光束横截面图像的光束强度。我知道如何使用 MATLAB 的 improfile 函数轻松做到这一点,它让我可以用鼠标指定线段,并绘制强度值与线段距离的关系图。是否有 Python 等价物可以让我完成相同的任务?

请您参考如下方法:

是的,有:函数profile_line来自 skimage.measure 包。我在 MATLAB 中没有图像处理工具箱,所以我也无法使用 MATLAB 的 improfile 函数显示该示例,但它的工作方式与 skimageprofile_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