脚本:resize图片同时得到符合新尺寸的标注信息

import cv2
import os.path
import glob

def convertjpg(jpgfile,outdir,width=720,height=1160):
    img = cv2.imread(jpgfile)
    h,w = img.shape[:2]
    img = cv2.resize(img, (width, height))
    x = width/w
    y = height/h
    myiname = jpgfile.split('/')[-1].rsplit('.', 1)[0]
    in_file = open('/DATACENTER1/zt/data_LP/LP_RPnet/Annotations/%s.txt' % (myiname))
    line = in_file.readline().split()
    xmin, ymin, xmax, ymax=int(line[0]), int(line[1]), int(line[2]), int(line[3])
    # xmin, ymin, xmax, ymax分别为xml读取的坐标信息
    newxmin=int(xmin*x)
    newymin=int(ymin*y)
    newxmax=int(xmax*x)
    newymax=int(ymax*y)
    out_file = open('LP_RPnet/resize/Annotations/%s.txt' % (myiname), 'w')
    out_file.write(str(newxmin)+' '+str(newymin)+' '+str(newxmax)+' '+str(newymax))
    print("saving "+myiname)
    cv2.imwrite(outdir+"/%s.jpg"%(myiname),img)
    # xmin, ymin, xmax, ymax分别为xml读取的坐标信息
    tl = (int(xmin*x), int(ymin*y))
    br= (int(xmax*x), int(ymax*y))
    cv2.rectangle(img, tl, br, (255, 0, 0), 1)  #画出新的框
    if myiname == "CD253_22FC6110": #测试一下框的对不对
        cv2.imwrite("/DATACENTER1/zt/test.jpg",img)

for jpgfile in glob.glob("LP_RPnet/Images/test/*.jpg"):
  convertjpg(jpgfile,"LP_RPnet/resize/test")

主要参考:https://blog.csdn.net/xiaoshulinlove/article/details/105571550
同时注意,尽量使用opencv来操作图片

全部评论

相关推荐

不愿透露姓名的神秘牛友
10-29 21:14
疯犬丨哈士奇:喜欢你的人会主动表白,对你有想法的人会很主动,所以要你的公司不会吊着你所以懂了吧
点赞 评论 收藏
分享
10-29 19:45
吉林大学 Java
从零开始数:自我评价没有必要写,但是看起来你应该是学了csdiy的一些课程,可以在专业技能里面写上自己比较熟悉操作系统和计网,但如果你是找Java的话,把第一个项目换了吧,现在看起来有点四不像。 无论是黑马点评或者说做个轮子项目,刷题和八股也搞起来吧,而且也没必要等到寒假,最近就可以开始找,找到就偷偷实习呗,别被逮到就行了。
点赞 评论 收藏
分享
友友们,我实在是不太明白,校招的话现在大多也是提前实习,然后转正也是需要考核的,考核通过才能转正,那这跟实习转正有什么区别啊
苦闷的仰泳鲈鱼刷了1...:提前实习,是让你提前熟悉业务的,后续是入职后可以减少试用期的(大部分是包入职的);转正实习,要是hc不够或者其他原因,让你正式offer可能都没有,这个风险很大。 ---个人看法和了解到的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务