有没有办法在 Python 中使用 cv2 或 PIL 在图像上绘制 "REPLACEMENT CHARACTER" 符号
Is there a way to draw the "REPLACEMENT CHARACTER" symbol on an image using cv2 or PIL in Python
我正在尝试使用 Open CV2 或 ImageDraw 在图像中绘制替换字符,�,ASCII value:65533,作为文本元素,但它总是添加非字符,ASCII value:65533, 而不是在图像上。我什至验证了我正在创建正确的角色,但没有成功。
有没有什么方法可以将 � 添加到使用特定字体大小的图像中,并将其添加为文本?
你可以这样做:
#!/usr/local/bin/python3
from PIL import Image, ImageFont, ImageDraw
import numpy as np
import cv2
# Open image with OpenCV
im_o = cv2.imread('start.png')
# Make into PIL Image
im_p = Image.fromarray(im_o)
# Get a drawing context
draw = ImageDraw.Draw(im_p)
font = ImageFont.truetype("/Library/Fonts/Arial Unicode.ttf",32)
draw.text((40, 20),"What character �",(255,255,255),font=font)
# Convert back to OpenCV image and save
result_o = np.array(im_p)
cv2.imwrite('result.png', result_o)
请注意,PIL 和 OpenCV 对其颜色通道使用不同的顺序,即 RGB 与 BGR,因此您需要注意这一点 - 除非像我在这里那样用黑色、白色或绿色进行注释。有一些更多的讨论和一个简单的方法来解决这个 。
我正在尝试使用 Open CV2 或 ImageDraw 在图像中绘制替换字符,�,ASCII value:65533,作为文本元素,但它总是添加非字符,ASCII value:65533, 而不是在图像上。我什至验证了我正在创建正确的角色,但没有成功。
有没有什么方法可以将 � 添加到使用特定字体大小的图像中,并将其添加为文本?
你可以这样做:
#!/usr/local/bin/python3
from PIL import Image, ImageFont, ImageDraw
import numpy as np
import cv2
# Open image with OpenCV
im_o = cv2.imread('start.png')
# Make into PIL Image
im_p = Image.fromarray(im_o)
# Get a drawing context
draw = ImageDraw.Draw(im_p)
font = ImageFont.truetype("/Library/Fonts/Arial Unicode.ttf",32)
draw.text((40, 20),"What character �",(255,255,255),font=font)
# Convert back to OpenCV image and save
result_o = np.array(im_p)
cv2.imwrite('result.png', result_o)
请注意,PIL 和 OpenCV 对其颜色通道使用不同的顺序,即 RGB 与 BGR,因此您需要注意这一点 - 除非像我在这里那样用黑色、白色或绿色进行注释。有一些更多的讨论和一个简单的方法来解决这个