簡體   English   中英

MATLAB 的“improfile”函數是否有 Python 等價物?

[英]Is there a Python equivalent for MATLAB's 'improfile' function?

我正在嘗試生成高斯擬合來描繪激光束橫截面圖像的光束強度。 我知道如何使用 MATLAB 的improfile函數輕松完成此improfile ,該函數可讓我用鼠標指定線段並繪制強度值與沿線段距離的關系圖。 是否有等效的 Python 可以讓我完成相同的任務?

是的,有: skimage.measure包中的函數profile_line 我在 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM