python好看图案的编程代码_只需15行Python代码,实现图像定位功能

引言本教程使用的环境:Windows 10 + Python 3.6

数据源:The Oxford-IIIT Pet Dataset

需要的第三方库:import tensorflow as tf

import numpy as np

import matplotlib.pyplot as plt

%matplotlib inline

from lxml import etree

import glob

from matplotlib.patches import Rectangle

一 单张图片定位

1 读取图片:(这里使用tensflow的方法读取)img = tf.io.read_file(r'\xxxxxxxx.jpg')

2 解码图片:img = tf.image.decode_jpeg(img)

3 显示下读取的图片plt.imshow(img)

20191229110053_48842.png

4 解析图片规格信息(这里是一个xml文件,我们使用爬虫将其图片信息爬取下来)

文件格式如图:

20191229110054_66659.pngxml = open(r'xxxxxxx.xml').read()

sel = etree.HTML(xml)

width = int(sel.xpath('//size/width/text()')[0])

height = int(sel.xpath('//size/height/text()')[0])

xmin = int(sel.xpath('//bndbox/xmin/text()')[0])

ymin = int(sel.xpath('//bndbox/ymin/text()')[0])

xmax = int(sel.xpath('//bndbox/xmax/text()')[0])

ymax = int(sel.xpath('//bndbox/ymax/text()')[0])

5 定位plt.imshow(img)

rec = Rectangle((xmin, ymin), (xmax-xmin), (ymax-ymin), fill=False, color='red')

ax = plt.gca()

ax.axes.add_patch(rec)

输出:

20191229110054_60976.png

二 统一规划

先给大家上一张图

20191229110055_14647.jpg所有

这是部分数据集图片,这里的图片大小不一,有的是长的有的是宽的。但是在创建data数据时,所有的图片数据应是统一的(也就是同长同高)所以我们得想个办法让其统一。

由上面的案例我们知道头部的位置由 (xmin, ymin), (xmax-xmin), (ymax-ymin)所决定,所以我们可以通过“放缩”的思想来实现目标值

1 统一图片大小(224,224):img = tf.image.resize(img, [224,224])

img = img/255

plt.imshow(img)

20191229110056_58952.png

2 确定相对于的目标值:xmin = (xmin/width)*224

ymin = (ymin/height)*224

xmax = (xmax/width)*224

ymax = (ymax/height)*224

3 定位:plt.imshow(img)

rec = Rectangle((xmin, ymin), (xmax-xmin), (ymax-ymin), fill=False, color='red')

ax = plt.gca()

ax.axes.add_patch(rec)

输出:

20191229110056_29517.png

这时就可以把所有数据集导入训练,建立管道,训练成模型。(建议使用GPU版本)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值