python利用图像处理方法 实现多目标检测与裁剪(opencv)

简述

对于一些特殊多目标图像,例如细粒度目标、缺乏标注文件等。或是图像前背景区分较明显的图像,不适合用深度学习模型进行目标定位与分割。相比之下,利用较为传统的图像处理方式,可以更高效地实现对上述图像的目标定位与分割(抠图)。
本文将分为三个部分详细讲解利用opencv对多目标图像进行目标定位与分割的实现过程。

1.批量resize

先对目标文件夹下所有图片进行resize,将所有图片resize到同一大小,方便后续进行批量操作。

1)效果

原图:原图
resize后的图像:
在这里插入图片描述

将图片resize成800×800,原图为502×502。

2)原理

先利用os.listdir方法将目标文件夹下的所有图像读取出来,再分别根据图像的宽高等比例地将图像resize成目标大小。最后利用opencv的imwrite()方法批量保存resize后的图片。

3)代码分析

  1. 利用for循环将目标文件夹下所有图片读取出来。
for i in os.listdir(imgs_p):
    img_path=os.path.join(imgs_p,i)
    img = cv2.imread(img_path)
  1. 与原图等比例进行resisze
	height, width = img.shape[:2]  # 得到行和列的长度
    scale=size/height  # 得到size和图像高的缩放比例
    height=size
    width=int(width*scale)
    img = cv2.resize(img, (width, height))
  1. 批量保存
	new_img_path=os.path.join(imgs_save_p,i)
    cv2.imwrite(new_img_path,img)

2.找出所有目标轮廓(定位)

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

事多做话少说

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

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

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

打赏作者

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

抵扣说明:

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

余额充值