You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现图像中单个字母的随机旋转?基于OpenCV的代码修改需求

实现OpenCV绘制随机旋转字母的效果

你原来的代码是直接绘制水平排列的字母,要实现每个字母随机旋转的话,OpenCV的cv2.putText本身不支持直接给单个文字加旋转角度,得换个思路:给每个字母单独创建小画布,旋转后再叠加到主图像上。下面是调整后的完整代码:

import numpy as np
import cv2
import random

font = cv2.FONT_HERSHEY_SIMPLEX
# 创建黑色背景图
img = np.zeros((500, 500, 3), np.uint8)
char = "ABCDEFG"
# 每个字母的大小和间距参数
font_scale = 1
thickness = 2
# 计算单个字母的大致尺寸(用于创建小画布)
text_size = cv2.getTextSize(char[0], font, font_scale, thickness)[0]
text_width, text_height = text_size

for i in range(len(char)):
    # 生成随机旋转角度(这里范围是-45到45度,可自行调整)
    angle = random.randint(-45, 45)
    # 目标位置的x坐标,y坐标是基准线位置
    target_x = 150 + i * 40  # 增大间距避免旋转后重叠
    target_y = 250

    # 1. 创建单独的小画布来绘制单个字母
    text_img = np.zeros((text_height * 2, text_width * 2, 3), np.uint8)
    # 在小画布中心绘制字母
    cv2.putText(text_img, char[i], (text_width//2, text_height//2 + text_height), 
                font, font_scale, (255, 255, 255), thickness)
    
    # 2. 获取字母的旋转中心(小画布的中心)
    center = (text_img.shape[1] // 2, text_img.shape[0] // 2)
    # 生成旋转矩阵
    rotation_matrix = cv2.getRotationMatrix2D(center, angle, 1.0)
    # 旋转小画布
    rotated_text = cv2.warpAffine(text_img, rotation_matrix, (text_img.shape[1], text_img.shape[0]))
    
    # 3. 创建掩码,只提取白色字母部分
    mask = cv2.cvtColor(rotated_text, cv2.COLOR_BGR2GRAY)
    _, mask = cv2.threshold(mask, 10, 255, cv2.THRESH_BINARY)
    
    # 4. 计算旋转后字母在主图像上的位置偏移(让字母的基准线对齐原来的y坐标)
    y_offset = target_y - text_height
    x_offset = target_x - text_width
    
    # 5. 将旋转后的字母叠加到主图像上
    img[y_offset:y_offset+rotated_text.shape[0], x_offset:x_offset+rotated_text.shape[1]][mask == 255] = rotated_text[mask == 255]

# 显示结果
cv2.imshow("Random Rotated Letters", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

关键细节说明:

  • 用random.randint生成随机角度,你可以根据需求调整角度范围(比如改成-30到30度,旋转幅度更小)
  • 每个字母单独画在小画布上,旋转后再叠加,这样不会影响其他字母
  • 用掩码来处理透明背景,只把字母的白色部分贴到主图像上,避免黑色画布干扰
  • 调整了字母之间的间距(从30改成40),防止旋转后字母重叠

你运行这段代码就能得到每个字母随机旋转的效果啦~

内容的提问来源于stack exchange,提问作者iyad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 13:12:35