我正在尝试产生高斯拟合,以描绘激光束横截面图像的光束强度。我知道如何使用MATLAB的improfile
函数轻松地执行此操作,该函数使我可以用鼠标指定线段并绘制强度值与沿线段的距离的关系。是否有Python等效项可以让我完成相同的任务?
答案 0 :(得分:1)
是的,有:skimage.measure
包中的函数profile_line
。我在MATLAB中没有图像处理工具箱,因此我也无法通过MATLAB improfile
函数来显示示例,但是它的工作方式与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