python 3.x

我正在研究一个小型图像分析项目。 目前,我正尝试使用多进程功能来提高我的代码的性能。 我有一个函数可以从一组图像中计算GLCM属性。

这是功能

def GLCM_Features_modified(image_window):

grayscale_range=32
x_dimenssion=1024
y_dimenssion=1024
feature_map_horizontal=np.zeros((3,x_dimenssion*y_dimenssion))
feature_map_vertical=np.zeros((3,x_dimenssion*y_dimenssion))
feature_map_diag1=np.zeros((3,x_dimenssion*y_dimenssion))
feature_map_diag2=np.zeros((3,x_dimenssion*y_dimenssion))

for m in range(0,image_window.shape[0]):
    GLCM=greycomatrix(image_window[m,:,:],[1],[0,np.pi/4, np.pi/2, (3*np.pi)/4],grayscale_range,symmetric=True,normed=True)
    contrast=greycoprops(GLCM,'contrast')
    homogeneity=greycoprops(GLCM,'homogeneity')
    correlation=greycoprops(GLCM,'correlation')
    feature_map_horizontal[0,m]=contrast[:,0]
    feature_map_horizontal[1,m]=homogeneity[:,0]
    feature_map_horizontal[2,m]=correlation[:,0]
    feature_map_vertical[0,m]=contrast[:,1]
    feature_map_vertical[1,m]=homogeneity[:,1]
    feature_map_vertical[2,m]=correlation[:,1]
    feature_map_diag1[0,m]=contrast[:,2]
    feature_map_diag1[1,m]=homogeneity[:,2]
    feature_map_diag1[2,m]=correlation[:,2]
    feature_map_diag2[0,m]=contrast[:,3]
    feature_map_diag2[1,m]=homogeneity[:,3]
    feature_map_diag2[2,m]=correlation[:,3]

return feature_map_horizontal   

那么我想使用多处理函数pool.map在另一个脚本中调用此函数,但它显示以下错误:

文件“/Users/andresricardogonzalezbarrios/anaconda3/lib/python3.6/multiprocessing/pool.py”,第644行,在get raise self._value

IndexError:数组索引太多

我的功能的参数是一个3D数组。 我已经运行了这个函数而不使用pool.map,它运行正常。

任何人都可以请解释我的代码有什么问题吗?

这是我如何使用pool.map函数

p = Pool()test_1 = p.map(GLCM_Features_modified,GLCM_window)

链接地址: http://www.djcxy.com/p/55293.html

上一篇: python 3.x

下一篇: Python execute subprocess.call inside map