其实最新版本的labelme工具已经支持类别直接转换为像素值了,下面一一来看:
首先安装labelme软件,可以根据这个安装labelme。
安装完成后,进行标定, 此时会生成.json文件,然后到刚才安装的labelme的路径找到json_to_dataset.py
我的路径为:G:\Anaconda\Lib\site-packages\labelme\cli
这里相信的解释了为什么生成的label.png就是8位的数据,大家可以看看
然后进行调用,方法是在cmd下输入: labelme_json_to_dataset <文件路径>.json
会生成如下文件:通过.json文件生成一个文件夹,文件夹里就是生成的文件包含原始图片img.png,标签文件label.png,标签文本文件,可视化文件lanbel_viz.png


下面看看标签文件的内容:

从上图可以看到这里有5类,那么label.png的像素值应该是以类别的方式进行填充,那么我们看看像素值,我是通过打印了label.png的像素值观察的,对了,这里不能通过opencv读取图片,需要通过PIL包进行读取,代码如下:
from PIL import Image
import numpy as np
img = Image.open("F:/电警大图/Desktop/dh_34_80_202_51_0724-062844_674_json/label.png")
img = np.array(img)
print("img.shape", img.shape)
print()
height,width = img.shape
for i in range(height):
for j in range(width):
print(img[i][j],end="")
print("")
下面就是输出的像素值:

通过上面可以看出像素值就是类值,因此不需要转换,只是需要通过PIL进行读取label.png的图片即可
1万+

被折叠的 条评论
为什么被折叠?



