OMR*_*RAN 4 opencv arabic python-3.x
我使用 python cv2(window10, python3.6) 在图像中写入文本,当文本是英文时它可以工作,但是当我使用阿拉伯文本时它会在图像中写入混乱的代码。
\n\n下面是我的代码:
\n\nimport cv2 \nimport numpy as np\nblank_image = np.zeros((100,300,3), np.uint8)\nfont = cv2.FONT_HERSHEY_SIMPLEX \norg = (10, 50) \nfontScale = .5\ncolor = (255, 0, 0) \nthickness = 1\nblank_image = cv2.putText(blank_image, "\xd8\xa7\xd9\x84\xd9\x84\xd8\xba\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa8\xd9\x8a\xd8\xa9", org, font, \n fontScale, color, thickness, cv2.LINE_AA)\nwindow_name = \'Image\'\ncv2.imshow(window_name, blank_image) \ncv2.waitKey(0)\ncv2.destroyAllWindows()\nRun Code Online (Sandbox Code Playgroud)\n\n问题在这里\nblank_image = cv2.putText(blank_image, "\xd8\xa7\xd9\x84\xd9\x84\xd8\xba\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xb9\xd8\xb1\ xd8\xa8\xd9\x8a\xd8\xa9", org, 字体,
\n 字体比例, 颜色, 粗细, cv2.LINE_AA)
fontpath = "arial.ttf" # <== download font\nfont = ImageFont.truetype(fontpath, 32)\nimg_pil = Image.fromarray(frame)\ndraw = ImageDraw.Draw(img_pil)\ndraw.text((50, 80),'\xd8\xb9\xd8\xb1\xd8\xa8\xd9\x8a', font = font)\nimg = np.array(img_pil)\ncv2.imshow(window_name, img) \nRun Code Online (Sandbox Code Playgroud)\nimport cv2 \nimport arabic_reshaper\nfrom bidi.algorithm import get_display\nimport numpy as np\nfrom PIL import ImageFont, ImageDraw, Image\n\n\ncap = cv2.VideoCapture(0)\n\nwhile(True):\n # Capture frame-by-frame\n ret, frame = cap.read()\n text = "\xd8\xb0\xd9\x87\xd8\xa8 \xd8\xa7\xd9\x84\xd8\xb7\xd8\xa7\xd9\x84\xd8\xa8 \xd8\xa7\xd9\x84\xd9\x89 \xd8\xa7\xd9\x84\xd9\x85\xd8\xaf\xd8\xb1\xd8\xb3\xd8\xa9"\n reshaped_text = arabic_reshaper.reshape(text)\n bidi_text = get_display(reshaped_text) \n fontpath = "arial.ttf" # <== https://www.freefontspro.com/14454/arial.ttf \n font = ImageFont.truetype(fontpath, 32)\n img_pil = Image.fromarray(frame)\n draw = ImageDraw.Draw(img_pil)\n draw.text((50, 80),bidi_text, font = font)\n img = np.array(img_pil)\n\n cv2.imshow('window_name', img) \n\n\n if cv2.waitKey(1) & 0xFF == ord('q'):\n break\n\n# When everything done, release the capture\ncap.release()\ncv2.destroyAllWindows()\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
4087 次 |
| 最近记录: |