abaqus 如何用python输出坐标 不是在后处理当中。就是在建模当中 我需要获取一些点的坐标信息

abaqus 如何用python输出坐标 不是在后处理当中。就是在建模当中 我需要获取一些点的坐标信息,第1张

可以有两种做法:

第一种:在输出场里面增加‘COORD’这样就可以在后续提取的时候直接提取‘COORD’场里面的DATA就是,节点在当前的坐标值;

第二种:提取提取初始坐标,然后提取‘U’场中的数据,和初始坐标求和计算就可以得到当前节点的坐标位置。

回答你的问题费老大劲了,opencv用的不熟

我运行输出:

row=14,col=5

14 5 248 242 234 237

gray2 crop: 220 232 219 5

中心点坐标(109,108),宽高(w=218, h=217)

[95, 134] [83, 173]

斜率k= 325

#解题思路:因为我下载的你的,黑色周围还有白色,所以先去除了周围的白色,保证只有黑色部分

#对转灰度图,这样方便计算,每个像素点的值就是一个0-255的值,0为黑色,255为白色

#然后获得灰度图的row和col,与正常思维的width和height相反,row对应height,col对应width

#遍历row和col,先获得第一个白点,再获得最后一个白点,然后根据这两个坐标执行tan计算斜率k值

#读取图像

img2 = cv2imread("/img/blackWhitepng")

#转成单通道黑白图

gray = cv2cvtColor(img2, cv2COLOR_BGR2GRAY)

cv2imshow('img2', img2)

cv2imshow('gray', gray)

sp = grayshape

rows = sp[0]

cols = sp[1]

cr = 0

cl = 0

#裁剪左边和上边空白

for row in range(rows):

    isBreak = False

    for col in range(cols):

        if gray[row, col]==0:

            cr = row

            cl = col

            print("\nrow=%d,col=%d"%(row, col))

            isBreak = True

            break

        #print(gray[row, col], end='')

        #if(col==cols-1):

            #print("\nrow=%d,col=%d-------------------------------"%(row, col))

    if isBreak==True:

        break

print (cr, cl, rows, cols, rows-cr, cols-cl)

gray2 = gray[cr:rows-cr, cl:cols-cl]

cv2imshow('gray2', gray2)

#裁剪右下角空白

sp = gray2shape

rows = sp[0]

cols = sp[1]

row = rows-1

print ("gray2 crop:", rows, cols, row, col)

while row!=0:

    isBreak = False

    col = cols - 1

    while col!=0:

        if gray2[row,col]==0:

            isBreak = True

            break

        col-=1

    if isBreak==True:

        break

    row-=1

gray3 = gray2[0:row+1, 0:col+1]

cv2imshow('gray3', gray3)

#对裁剪后的gray3求中心点坐标

sp = gray3shape

rows = sp[0]

cols = sp[1]

x = cols//2

y = rows//2

print("中心点坐标(%d,%d),宽高(w=%d, h=%d)"%(x,y,cols,rows))

#求斜率 (y2-y1)/(x2-x1)

#遍历出第一个白点和最后一个白点,做计算

x1y1=[]

x2y2=[]

#求第一个白点坐标

for row in range(rows):

    isBreak = False

    for col in range(cols):

        if gray3[row,col]==255:

            x1y1append(col)

            x1y1append(row)

            isBreak = True

            break

    if isBreak==True:

        break

#求最后一个白点坐标

row = rows-1

while row!=0:

    isBreak = False

    col = cols - 1

    while col!=0:

        if gray2[row,col]==255:

            x2y2append(col)

            x2y2append(row)

            isBreak = True

            break

        col-=1

    if isBreak==True:

        break

    row-=1

print(x1y1,x2y2)

#计算斜率tan值

k = abs(x2y2[1]-x1y1[1])/abs(x2y2[0]-x1y1[0])

print("斜率k=",k)

cv2waitKey(0)

cv2destroyAllWindows()

我不知道你写没写过对的单一色的坐标提取这样的代码,和你说的这个很像。首先你的图表是还是文本?如果是,你对进行颜色提取处理成一个标记一个黑点、一个未标记一个白点,这样用在提取黑点位置的坐标字典,类似{(0,0,0):[(1,2),(3,2),(5,3)]}这样的黑点位置信息,这时你迭代计算你的周围方位是否存在,存在则放到一个列表里,不存在则判定以上是这个列表是一个整体,循环往复。如果是文本图表,和的差不多,那就不用处理了。自己思考吧,请不要追问啦,我的手机不支持--。说实话你的提问其实和文字识别有关,分数真少……

这样是字符串先匹配啊,你先要把匹配[(\d+,\d+,\d+)]这个模式的字符串取出来,取出group(1),然后再用split把坐标分别搞出来

pattern = '[\d+,\d+,\d+)]'

result = rematch(str, pattern)group(1)

list = resultsplit(',')

list里面就是你要的三个坐标,取的时候你要把字符串转化为整型

以上就是关于abaqus 如何用python输出坐标 不是在后处理当中。就是在建模当中 我需要获取一些点的坐标信息全部的内容,包括:abaqus 如何用python输出坐标 不是在后处理当中。就是在建模当中 我需要获取一些点的坐标信息、python怎么在一群点集中,提取中心坐标、请教下python如何获取图表中被标记的小方格的坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9490982.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存