在进行测试时,发现了一个非常有趣的问题。当生成“摸”字时,程序在生成网格的过程中会出现卡死的情况。
虽然这并不是因为程序禁止“摸鱼”,哈哈哈哈。
主要是因为“摸”字的笔画贴的太近,导致生成的曲面存在问题,这导致在划分网格的时候出现了卡死的情况。
其他具有较多笔画的字也可能会面临同样的问题。赶快去试试吧!不过,在进行测试之前,请确保已经正确安装CV2库。
CV2库安装:
pip install opencv-python
提取文字轮廓,代码奉上。
import cv2
import os
import numpy as np
from PIL import ImageFont, ImageDraw, Image
def get_contours(text, font_path, font_size):
image = Image.new('L', (1000, 400), 0)
draw = ImageDraw.Draw(image)
font = ImageFont.truetype(font_path, font_size)
draw.text((10, 10), text, fill=1, font=font)
image = np.array(image)
contours, _ = cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
contours = [contour.squeeze().tolist() for contour in contours]
return contours
# 测试
# contours = get_contours(os.environ['text'], 'C:/Windows/Fonts/STHUPO.TTF', 50)
contours = get_contours('重庆', 'C:/Windows/Fonts/STHUPO.TTF', 200)
# contours = get_contours('HyperMesh', 'C:/Windows/Fonts/STXINWEI.TTF', 50)
with open(r"C:\Users\jintian\Downloads\a.txt", 'w') as f:
for contour in contours:
f.write(str(contour))
f.write('\n')
通过适当修改代码逻辑,就可以实现提取图片轮廓的功能。比如,可以提取出它的轮廓。
上述图片可以归为单一封闭曲面的一类。也就是说,一个区域只有一个轮廓,因此生成曲面的逻辑就无需进行判断。
但是.......
对于下面的这张图片而言,情况就比较不同了。以车身部分为例,如果要绘制出其曲面,就会变得非常困难。首先需要按照黑色 区域进行分离,然后提取出每个区域中最大的轮廓。接下来就要减去其他内轮廓所形成的曲面,才能得到目标曲面。这个过程比较复杂,需要进行细致的处理。
获取到轮廓后,基于HyperWork可以进行进一步的操作。😉😉😉
具体的操作方式与情况可能因工作内容,需要视实际情况而定。以零部件为例,例如,可以通过手绘的功能,快速生成零部件。一旦零件生成完成,就可以进行计算结果,并基于已有的结果训练生成实际零部件。此外,例如在优化工作中,你需要绘制一根梁,那么你就可以绘制一个大概的零件,通过图像识别找到数据库中类似的零件。总之,AI技术可以提供无限的可能性。
引用之前文章中提到的一句话,“这个过程所建立的数据库才是最大的资产。”
水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水