鱼C论坛

 找回密码
 立即注册
楼主: ShuviDoura

[已解决]什么算法可以把图像的纹理特征转化为一个具体的数字

  [复制链接]
 楼主| 发表于 2024-12-24 11:01:45 | 显示全部楼层
FishC 发表于 2024-12-24 10:52
你可以使用 Python 的 PIL 库(Pillow)来生成带有自定义文字的图片。以下是一个简单的示例代码:


...

    image.show()
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-12-24 11:01:56 | 显示全部楼层


要在图像中间添加自定义文字并显示它,你可以使用 Python 的 Pillow 库。下面是一个简单的例子:

  1. from PIL import Image, ImageDraw, ImageFont

  2. # 打开一张图片
  3. image = Image.open("your_image_path.jpg")

  4. # 创建一个绘图对象
  5. draw = ImageDraw.Draw(image)

  6. # 自定义文字
  7. text = "您的自定义文字"

  8. # 使用默认字体,你可以选择其他字体
  9. font = ImageFont.load_default()

  10. # 获得图片的尺寸
  11. image_width, image_height = image.size

  12. # 获得文字的尺寸
  13. text_width, text_height = draw.textsize(text, font=font)

  14. # 计算文字的 x, y 坐标
  15. x = (image_width - text_width) / 2
  16. y = (image_height - text_height) / 2

  17. # 将文字绘制到图片中间
  18. draw.text((x, y), text, font=font, fill="black")

  19. # 显示图片
  20. image.show()

  21. # 保存图片
  22. image.save("output_image.jpg")
复制代码


- 请将 `"your_image_path.jpg"` 替换为你的原始图片路径。
- 你可以根据需要调整字体和文字颜色。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-12-24 11:02:15 | 显示全部楼层
FishC 发表于 2024-12-24 10:52
你可以使用 Python 的 PIL 库(Pillow)来生成带有自定义文字的图片。以下是一个简单的示例代码:


...

Traceback (most recent call last):
  File "G:\A-Game\choice_t\daan.py", line 63, in <module>
    shuchu(dan(pattern))
  File "G:\A-Game\choice_t\daan.py", line 50, in shuchu
    text_size = draw.textsize(text, font=font)
                ^^^^^^^^^^^^^
AttributeError: 'ImageDraw' object has no attribute 'textsize'
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-12-24 11:02:56 | 显示全部楼层
ShuviDoura 发表于 2024-12-24 11:02
Traceback (most recent call last):
  File "G:\A-G ...


看起来你使用了 Pillow 版本中没有 `textsize` 方法。较新的 Pillow 版本将 `textsize` 方法改为了 `textbbox` 来获取文本大小。试试使用以下代码:

  1. from PIL import Image, ImageDraw, ImageFont

  2. def create_image_with_text(text, image_path, output_path):
  3.     # 打开自定义图片
  4.     image = Image.open(image_path)
  5.     draw = ImageDraw.Draw(image)
  6.    
  7.     # 使用自定义字体和大小(你需要一个 .ttf 字体文件)
  8.     font = ImageFont.truetype("arial.ttf", 40)
  9.    
  10.     # 获取文本大小
  11.     text_width, text_height = draw.textbbox((0, 0), text, font=font)[2:]
  12.    
  13.     # 计算文本在图片中居中的位置
  14.     width, height = image.size
  15.     text_x = (width - text_width) / 2
  16.     text_y = (height - text_height) / 2
  17.    
  18.     # 添加文本到图片
  19.     draw.text((text_x, text_y), text, font=font, fill="black")
  20.    
  21.     # 保存输出图片
  22.     image.save(output_path)

  23. # 示例使用
  24. create_image_with_text("FishC", "input_image.jpg", "output_image.jpg")
复制代码


请确保你的环境中安装了 Pillow,并且提供了一个有效的字体文件路径。例如,“arial.ttf”为系统默认字体,可以替换为其他字体路径。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-12-24 15:20:50 | 显示全部楼层
FishC 发表于 2024-12-24 11:02
看起来你使用了 Pillow 版本中没有 `textsize` 方法。较新的 Pillow 版本将 `textsize` 方法改为了 `te ...

如果列表1为[A,B,B],2为[AB,B,C]
如果1中的i个位置和2中的第i个位置的字母一样计1分,完全不一样计0分,只有一部分一样计0.5分,例如A和AB都有一个A,我要怎么做
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-12-24 15:22:49 | 显示全部楼层
ShuviDoura 发表于 2024-12-24 15:20
如果列表1为,2为
如果1中的i个位置和2中的第i个位置 ...


你可以使用一个简单的循环来遍历两个列表并比较对应位置的字符串。这是一个简单的示例代码来实现这个功能:

  1. # 假设 list1 和 list2 是两个待比较的列表
  2. list1 = ["A", "AB", "C"]
  3. list2 = ["A", "AC", "D"]

  4. # 初始化分数为0
  5. score = 0

  6. # 遍历两个列表并比较对应位置的字符串
  7. for i in range(min(len(list1), len(list2))):
  8.     if list1[i] == list2[i]:
  9.         score += 1
  10.     elif set(list1[i]).intersection(set(list2[i])):
  11.         score += 0.5

  12. print("总分数:", score)
复制代码


在这段代码中,我们使用了 `set` 和 `intersection` 方法来判断两个字符串是否有相同的字母。根据不同的比较结果,我们相应地增加分数。这样你就可以根据你的需求来计算分数了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-12-24 15:27:10 | 显示全部楼层
FishC 发表于 2024-12-24 15:22
你可以使用一个简单的循环来遍历两个列表并比较对应位置的字符串。这是一个简单的示例代码来实现这个功 ...

选对为1分,选对但不选全为0.5,有错误答案为0分,怎么做
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-12-24 15:33:43 | 显示全部楼层
ShuviDoura 发表于 2024-12-24 15:27
选对为1分,选对但不选全为0.5,有错误答案为0分,怎 ...


你可以创建一个函数,根据规则对比两个列表(例如参考答案和用户答案),然后计算得分。下面是一个简单的例子:

  1. def calculate_score(answer_key, user_answers):
  2.     score = 0
  3.     for correct, user in zip(answer_key, user_answers):
  4.         if correct == user:
  5.             score += 1
  6.         elif all(char in correct for char in user):
  7.             score += 0.5
  8.     return score

  9. # 示例用法
  10. answer_key = ['A', 'AB', 'C', 'D']
  11. user_answers = ['A', 'A', 'C', 'E']

  12. print(calculate_score(answer_key, user_answers))
复制代码


在这个例子中,`calculate_score` 函数会根据你描述的规则来计算总得分。你可以根据情况调整这段代码。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-12-25 06:10:18 From FishC Mobile | 显示全部楼层
AI老师太强了!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-6 07:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表