标题:python如何现读取应力云图
只看楼主
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
结帖率:100%
 问题点数:0 回复次数:0 
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()

搜索更多相关主题的帖子: import python operator sum 读取 
2021-04-21 14:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505525-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.305460 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved