栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python将图片对称分割

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python将图片对称分割

在用双目相机与其指定的App拍摄时,左右目拍摄照片连在一起,现将其左右分开,好做下一步训练与学习。(本文是本人学习过程中的一次小记录,编程技术很菜,大多有参考,代码可能也不简洁,第二次写CSDN,望轻喷!QAQ)

示例图片:

图1

图2

效果: left:

                                图1左                                                                图2左

 right:

                                图1右                                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        图2右

 

 (好像都差不多,选的图片看起来不那么明显,hhh。  -_-!!!  )

代码:
import glob
import cv2
import numpy as np

save_left = "./images/left/"
save_right = "./images/right/"
read_shape = []
img_name = []

images = glob.glob('./*.png')
# print(images)    查看glob读取的时候用

for i in range(len(images)):
    read_shape.append(cv2.imread(images[i]))

    img_name.append(images[i].split('\')[1].split('.')[0])    # 这里可能需要修改

    x, y = np.int32((read_shape[i].shape[0] * 0.5, read_shape[i].shape[1] * 0.5))
    cropped_left = read_shape[i][:, 0:y]
    cropped_right = read_shape[i][:, y:]

    img_left = cv2.imwrite(save_left + img_name[i] + '.png', cropped_left)
    img_right = cv2.imwrite(save_right + img_name[i] + '.png', cropped_right)

使用方法:

1).在自己的数据图片目录下创建一个.py文件,复制代码进去。

2).然后再在当前目录创建images文件夹,再在这个文件夹下分别创建left和right两个文件夹。

3).运行。

注意的地方:

此行代码:

img_name.append(images[i].split('\')[1].split('.')[0])

因为我的电脑用glob读取的时候是'.\1.png',有的电脑读取会显示的'./1.png'。这里先把for循环的内容注释或者删除,print一下,查看一下自己电脑glob读取的格式,再改成"\"或"/"。

迷迷糊糊的缺点:

因为我这里从中间分开,数据转换成了int型,有些图片像素宽除2后会变成0.5,所以会有点缺失,咳咳咳,这个纯属萌新解读,(手动狗头),在线求大神修改~

自己想到的蜜汁解法:

可以考虑将所有图片先reshape成整除的,这样就好啦~(大神可以直接改代码~)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/316565.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号