【bug】paddleocr draw_ocr_box_txt ValueError: incorrect coordinate type

devtools/2024/10/22 4:24:33/

bugpaddleocr__draw_ocr_box_txt__ValueError_incorrect_coordinate_type_0">【bug】paddleocr draw_ocr_box_txt ValueError: incorrect coordinate type

环境

python">python 3.10.15pillow                10.4.0
paddleocr             2.8.1

错误详情

错误文本

python">Traceback (most recent call last):....draw_left.polygon(box, fill=color)ValueError: incorrect coordinate type

原因:是由于Pillow库的polygon()函数的xy参数(就是上面的box变量)有类型要求,一定要list(tuple)类型,如果是三角形,坐标例子[(50.0, 50), (150, 50), (100, 150)]

因此,这个错误是输入坐标格式导致的错误。

解决方法

paddleocr 识别得到的每个box坐标进行变换后再输入draw_ocr_box_txt 函数,

单个box坐标变换如下:

python"># [[819.0, 56.0], [894.0, 56.0], [894.0, 104.0], [819.0, 104.0]] -> [(819.0, 56.0), (894.0, 56.0), (894.0, 104.0), (819.0, 104.0)] box = [[819.0, 56.0], [894.0, 56.0], [894.0, 104.0], [819.0, 104.0]]
box = list(map(tuple, box))

【增】polygon函数测试例子

python">from PIL import Image, ImageDraw# 创建一个新的白色背景图像
img_left = Image.new('RGB', (400, 300), 'white')# 创建一个可以在img_left上绘图的对象
draw_left = ImageDraw.Draw(img_left)# 定义多边形的顶点坐标,这里以一个三角形为例
# 顶点坐标需要是一个列表,其中包含(x, y)元组
t2 = [(50, 50), (150, 50), (100, 150)]# 定义填充颜色,这里使用红色
color = 'red'# 使用定义的顶点和颜色绘制多边形
draw_left.polygon(t2, fill=color)# 显示图像
img_left.show()# 如果需要,可以保存图像
img_left.save('polygon_image.png')

图片结果

在这里插入图片描述


http://www.ppmy.cn/devtools/125774.html

相关文章

unity 调整skinweight (皮肤权重),解决:衣服穿模问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、skinweight 是什么?二、代码控制:可根据平台切换1.引入库 总结 前言 最近遇到一个问题,人物模型的衣服穿模&#xff08…

EventSource是什么,和axios区别,以及SSE是什么

EventSource、axios以及SSE(Server-Sent Events)在Web开发中各自扮演着不同的角色,以下是它们的详细解释及区别: EventSource 定义:EventSource是浏览器提供的用于接收SSE事件的接口。它允许客户端通过HTTP协议与服务…

GaussDB 主备版本8 -数据库对象 学习

1 表空间 1.1 GaussDB自带了两个表空间:pg_default和pg_global 1.1.1 默认表空间pg_default:用来存储非共享系统表、用户表、用户表index、临时表、临时表index、内部临时表的默认表空间。对应存储目录为实例数据目录下的base目录。 1.1.2 共享表空间pg…

OpenCV视频I/O(20)视频写入类VideoWriter之用于将图像帧写入视频文件函数write()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::VideoWriter::write() 函数用于将图像帧写入视频文件。 该函数/方法将指定的图像写入视频文件。图像的大小必须与打开视频编写器时指定的大…

小牛问题(c++)

题目描述 一头刚出生的小母牛,4年后生一头小母牛,即第4年会生一头小母牛,以后每年生一头,现有一头刚出生的小母牛,问n年后共有多少头牛? 输入 输入n 输出 输出共有多少头牛 样例输入 复制 10 样例输…

OpenAI Canvas最新发布,编程和写作迎来全新史诗级加强!

文章目录 零、前言一、GPT-40 with canvas操作指导写作领域加强建议编辑调整长度阅读水平添加最后的润色添加表情 编程领域加强选中代码问问题添加评论(添加注释)添加日志转换语言代码审查 二、感受 零、前言 最新消息,国庆期间OpenAI有大动…

docker详解介绍+基础操作 (四)容器镜像

一.镜像结构和原理 Docker 镜像是 Docker 技术的核心组成部分之一,它用于封装应用程序及其依赖项,以便在任何支持 Docker 的环境中运行。了解 Docker 镜像的结构和原理对于有效使用 Docker 至关重要。以下是对 Docker 镜像结构和原理的详细介绍。 Dock…

使用 Raspberry Pi Pico W 的基于 MQTT 的分布式网络自适应估计

英文论文标题:MQTT based Adaptive Estimation over Distributed Network using Raspberry Pi Pico W 中文论文标题:使用 Raspberry Pi Pico W 的基于 MQTT 的分布式网络自适应估计 作者信息: Prantaneel DebnathAnshul GusainParth Sharm…