【bug】paddleocr draw_ocr_box_txt ValueError: incorrect coordinate type

ops/2024/10/21 4:02:01/

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/ops/125481.html

相关文章

『Mysql进阶』Mysql explain详解(五)

目录 Explain 介绍 Explain分析示例 explain中的列 1. id 列 2. select_type 列 3. table 列 4. partitions 列 5. type 列 6. possible_keys 列 7. key 列 8. key_len 列 9. ref 列 10. rows 列 11. filtered 列 12. Extra 列 Explain 介绍 EXPLAIN 语句提供有…

python菜鸟知识

去除空格 str 这是 含 空格 print(f去除两端空格{str.strip()}) print(f去除左端空格{str.lstrip()}) print(f去除右端空格{str.rstrip()}) print(f去除全部空格{str.replace(" ", "")}) 方法返回对象yield yield :.join([ip, port])yield {ranking…

MPI错误对照表

00CA : no resources available,没有资源可用到的   00CB : configuration error,配置错误   00CD : illegal call,违法的喊声   00CE : module not found,模块不发现   00CF : driver not loaded,驱动程序不装…

Python 代码使用 OpenCV 库实现了从摄像头获取视频流,并在视频中检测特定颜色区域的边缘线条

import cv2 import numpy as np #想和大神交朋友或想软件开发兼职接项目&#xff0c;请通过手机端搜小#程#序: "黄页小艺" 。 def extend_line_to_borders(x1, y1, x2, y2, width, height):# Compute the slope and interceptif x1 x2 or abs(x2 - x1) < 1e-6: …

基于深度学习的复杂器官建模与模拟

基于深度学习的复杂器官建模与模拟是一项前沿技术&#xff0c;它利用深度学习模型从大量医学图像和临床数据中提取信息&#xff0c;生成复杂器官的三维结构模型&#xff0c;并对其进行功能模拟。这项技术对于医学诊断、手术规划、药物开发和疾病研究有重要意义&#xff0c;特别…

【动态规划-最长递增子序列(LIS)】【hard】力扣1671. 得到山形数组的最少删除次数

我们定义 arr 是 山形数组 当且仅当它满足&#xff1a; arr.length > 3 存在某个下标 i &#xff08;从 0 开始&#xff09; 满足 0 < i < arr.length - 1 且&#xff1a; arr[0] < arr[1] < … < arr[i - 1] < arr[i] arr[i] > arr[i 1] > … &g…

手机解锁如何工作?解锁手机的顶级应用程序

解锁手机软件是指用于解锁特定运营商或网络的手机的计算机程序或工具&#xff0c;使其能够与其他运营商一起使用或在国际上使用。 当个人想要切换到不同的网络提供商或在国外旅行时使用其设备时&#xff0c;通常会使用此软件。以下是解锁手机软件的概述&#xff1a;需要注意的…

Java List 的介绍与实现原理

什么是 List 在 Java 中&#xff0c;List 是一种有序集合&#xff0c;允许重复的元素。它是 Java Collections Framework 的一部分&#xff0c;提供了一种便捷的方式来存储和操作线性数据。常见的实现类包括 ArrayList、LinkedList 和 Vector。 实现原理 1. ArrayList Arra…