给我一个python代码将含有坐标信息的json文件,转化为可用于分割训练的标签二值化黑白png图片
时间: 2023-04-03 10:00:51 浏览: 102
可以使用以下Python代码将含有坐标信息的JSON文件转化为可用于分割训练的标签二值化黑白PNG图片:
```python
import json
from PIL import Image, ImageDraw
# 读取JSON文件
with open('data.json', 'r') as f:
data = json.load(f)
# 获取图片大小
width = data['imageWidth']
height = data['imageHeight']
# 创建空白图片
img = Image.new('L', (width, height), )
# 绘制标签
draw = ImageDraw.Draw(img)
for shape in data['shapes']:
if shape['shape_type'] == 'polygon':
points = shape['points']
draw.polygon(points, fill=255)
# 保存图片
img.save('label.png')
```
其中,`data.json`是含有坐标信息的JSON文件的路径,`label.png`是生成的标签二值化黑白PNG图片的保存路径。这段代码会读取JSON文件中的坐标信息,并将其绘制在空白图片上,最后保存为PNG格式的图片。
相关问题
给我一个python代码用cv2的方法将含有坐标信息的json文件,转化为可用于分割训练的标签二值化黑白png图片
可以使用以下代码将含有坐标信息的json文件转化为标签二值化黑白png图片:
```python
import cv2
import json
import numpy as np
# 读取json文件
with open('json_file.json', 'r') as f:
data = json.load(f)
# 获取图片大小
img_size = (data['imageWidth'], data['imageHeight'])
# 创建空白图片
img = np.zeros((img_size[1], img_size[]), dtype=np.uint8)
# 遍历json文件中的每个坐标信息
for shape in data['shapes']:
# 获取坐标信息
points = np.array(shape['points'], np.int32)
# 将坐标信息转化为多边形
cv2.fillPoly(img, [points], 255)
# 保存标签二值化黑白png图片
cv2.imwrite('label.png', img)
```
其中,`json_file.json`为含有坐标信息的json文件的文件名,`label.png`为生成的标签二值化黑白png图片的文件名。
给我一个python代码用cv2的方法将一个文件夹中所有含有坐标信息的json文件,转化为可用于分割训练的标签二值化黑白png图片且命名方式不变
以下是我作为 CSDN 开发的 C 知道的回答:
可以使用以下 Python 代码实现:
```python
import cv2
import json
import os
# 定义函数将 json 文件转化为二值化黑白 png 图片
def json_to_png(json_file, png_file):
with open(json_file, 'r') as f:
data = json.load(f)
img = cv2.imread(data['imagePath'], )
for shape in data['shapes']:
pts = shape['points']
pts = pts.reshape((-1, 1, 2)).astype(int)
cv2.fillPoly(img, [pts], 255)
cv2.imwrite(png_file, img)
# 遍历文件夹中所有 json 文件并转化为 png 文件
folder_path = 'your_folder_path'
for file_name in os.listdir(folder_path):
if file_name.endswith('.json'):
json_file = os.path.join(folder_path, file_name)
png_file = os.path.join(folder_path, file_name.replace('.json', '.png'))
json_to_png(json_file, png_file)
```
这段代码可以将指定文件夹中所有含有坐标信息的 json 文件转化为二值化黑白 png 图片,并且命名方式不变。
阅读全文