在试用labelstudio标注数据时,通常使用coco格式导出,之前标注ocr信息时,无论如何都切不出来对应的文字块,反复百度、google都没有现成的提示,后来翻labelstudio的官方文档得到提示。
The units the x, y, width and height of image annotations are provided in percentages of overall image dimension.
翻译如下:图像注释的x、y、宽度和高度的单位以整体图像尺寸的百分比提供。
根据这个原则,转换一下coco中的x、y坐标才能得到文字块在图片中正确的位置:
假如导出的数据x、y、width、height分别如下:
python
pixel_x, pixel_y, pixel_width, pixel_height = 63,83,20,7 # 导出数据
original_width, original_height = 1650, 2314 # 图片的长宽
其实际的坐标如下:
python
x = pixel_x/100 * original_width
y = pixel_y/100 * original_height
width = pixel_width/100 * original_width
height = pixel_height/100 * original_height
# x,y,width, height == > (1039.5, 1920.62, 330.0, 161.98000000000002)
实际中将坐标更换为整数在numpy中索引:
python
x,y,width, height = [int(i) for i in [x,y,width, height]]
#子图
text_area = img[y:y+height,x:x+width,:]
记录一下,以防日后使用忘记了