python如何现读取应力云图
RT,现在手边有个项目需要处理大批量的有限元软件的应力云图结果(别人的报告,而且只有报告,不提供模型给我们)。人力处理不仅只能是读取一个整体的水平,而且效率低下,还容易出现错误。
所以我想,是不是可以利用python读取所有点的颜色方式来读取应力结果。
我查了一下利用numpy、cv2可以,但是找到的例子都是RGB,对于云图来说,还远远不足,自己水平也有限,无法修改代码。
哪位大神可以帮写一段代码,实现这个功能。下面是我找到的代码示例
程序代码:
# Imports import cv2 import numpy as np from matplotlib import pyplot as plt import operator # Read image imagePath = "D://" img = cv2.imread(imagePath+"test.png") cv2.imshow('Imagem:',img) color = ('b','g','r') qtdBlue = 0 qtdGreen = 0 qtdRed = 0 totalPixels = 0 for channel,col in enumerate(color): histr = cv2.calcHist([img],[channel],None,[256],[1,256]) plt.plot(histr,color = col) plt.xlim([0,256]) totalPixels+=sum(histr) # print(histr) if channel==0: qtdBlue = sum(histr) elif channel==1: qtdGreen = sum(histr) elif channel==2: qtdRed = sum(histr) qtdBlue = (qtdBlue/totalPixels)*100 qtdGreen = (qtdGreen/totalPixels)*100 qtdRed = (qtdRed/totalPixels)*100 # qtdBlue = filter(operator.isNumberType, qtdBlue) # qtdGreen = filter(operator.isNumberType, qtdGreen) # qtdRed = filter(operator.isNumberType, qtdRed) plt.title("Red: "+str(qtdRed)+"%; Green: "+str(qtdGreen)+"%; Blue: "+str(qtdBlue)+"%") plt.show()