labelme点到图像外面导致崩溃的解决办法

这段代码首先在图像四周填充黑色区域,然后读取并处理指定目录下的图片。接着,它将标注的黑白图截取回原图大小,并保存。最后,将mask复制到原图目录下并进行验证。整个过程涉及图像的读取、裁剪、颜色通道操作以及可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 先在图像四周填充黑色区域,这里图像高512,宽1280
import os, sys, cv2
import numpy as np

al= os.listdir('update')
al.sort()
for a in al:
	tmp = np.zeros((640, 1400,3)).astype('uint8')
	im = cv2.imread('update/'+a)
	tmp[50:562, 50:1330, :] = im
	cv2.imwrite('bigger/'+a, tmp)
  • 标注并提取黑白图
  • 从黑白图上截取原图区域
import os, sys, cv2, glob

path='bigger'
al=glob.glob(path+'/*json')
al.sort()
for a in al:
	if a[-5] != '.': continue
	os.system('labelme_json_to_dataset '+a)
	b = a.replace('.json', '_json')
	im = cv2.imread(b+'/label.png', 0)
	tmp=im[50:562, 50:1330]
	tmp[tmp>0] = 255
	name = a[:-5]+'.png'
	print(tmp.shape)
	cv2.imwrite(name, tmp)
  • 可以把mask复制到原图目录下并验证一下
import os, sys, cv2, glob
import numpy as np

path='update'
al=glob.glob(path+'/*jpg')
al.sort()
for a in al:
	b=a.replace('jpg', 'png')
	im = cv2.imread(a)
	mask = cv2.imread(b, 0)
	print(mask.shape)
	tmp = np.zeros(im.shape).astype('uint8')
	tmp[..., 2] = mask/2
	im[mask>0] = im[mask>0] / 2 + tmp[mask>0]
	cv2.imshow('ss', im)
	if cv2.waitKey() & 0xff == 27: break
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刀么克瑟拉莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值