python实现图像随机裁剪的示例代码


Posted in Python onDecember 10, 2020

实验条件:

  1. 从1张图像随机裁剪100张图像
  2. 裁剪出图像的大小为 60 x 60
  3. IoU 大于等于 th=0.6 的裁剪框用红色标出,其它裁剪框用蓝色标出
  4. IoU 比对原始区域用绿框标出

实验代码:

import cv2 as cv 
import numpy as np

np.random.seed(0)

# get IoU overlap ratio
def iou(a, b):
	# get area of a
 area_a = (a[2] - a[0]) * (a[3] - a[1])
	# get area of b
 area_b = (b[2] - b[0]) * (b[3] - b[1])

	# get left top x of IoU
 iou_x1 = np.maximum(a[0], b[0])
	# get left top y of IoU
 iou_y1 = np.maximum(a[1], b[1])
	# get right bottom of IoU
 iou_x2 = np.minimum(a[2], b[2])
	# get right bottom of IoU
 iou_y2 = np.minimum(a[3], b[3])

	# get width of IoU
 iou_w = iou_x2 - iou_x1
	# get height of IoU
 iou_h = iou_y2 - iou_y1

	# get area of IoU
 area_iou = iou_w * iou_h
	# get overlap ratio between IoU and all area
 iou = area_iou / (area_a + area_b - area_iou)

 return iou


# crop and create database
def crop_bbox(img, gt, Crop_N=200, L=60, th=0.5):
 # get shape
 H, W, C = img.shape

 # each crop
 for i in range(Crop_N):
  # get left top x of crop bounding box
  x1 = np.random.randint(W - L)
  # get left top y of crop bounding box
  y1 = np.random.randint(H - L)
  # get right bottom x of crop bounding box
  x2 = x1 + L
  # get right bottom y of crop bounding box
  y2 = y1 + L

  # crop bounding box
  crop = np.array((x1, y1, x2, y2))

  # get IoU between crop box and gt
  _iou = iou(gt, crop)

  # assign label
  if _iou >= th:
   cv.rectangle(img, (x1, y1), (x2, y2), (0,0,255), 1)
   label = 1
  else:
   cv.rectangle(img, (x1, y1), (x2, y2), (255,0,0), 1)
   label = 0

 return img

# read image
img = cv.imread("../xiyi.jpg")
img1 = img.copy()
# gt bounding box
gt = np.array((87, 51, 169, 113), dtype=np.float32)

# get crop bounding box
img = crop_bbox(img, gt, Crop_N=100, L=60, th=0.6)

# draw gt
cv.rectangle(img, (gt[0], gt[1]), (gt[2], gt[3]), (0,255,0), 1)
cv.rectangle(img1,(gt[0], gt[1]), (gt[2], gt[3]), (0,255,0), 1)

cv.imshow("result1",img1)
cv.imshow("result", img)
cv.imwrite("out.jpg", img)
cv.waitKey(0)
cv.destroyAllWindows()

实验结果:

python实现图像随机裁剪的示例代码

以上就是python实现图像随机裁剪的示例代码的详细内容,更多关于python 图像裁剪的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python实现的一个火车票转让信息采集器
Jul 09 Python
使用beaker让Facebook的Bottle框架支持session功能
Apr 23 Python
Django imgareaselect手动剪切头像实现方法
May 26 Python
python字符串常用方法
Jun 14 Python
python多任务及返回值的处理方法
Jan 22 Python
解决Pandas的DataFrame输出截断和省略的问题
Feb 08 Python
Python 占位符的使用方法详解
Jul 10 Python
python2.7的flask框架之引用js&css等静态文件的实现方法
Aug 22 Python
python实发邮件实例详解
Nov 11 Python
python 伯努利分布详解
Feb 25 Python
Python super()方法原理详解
Mar 31 Python
PyCharm 在Windows的有用快捷键详解
Apr 07 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 #Python
python 实现的IP 存活扫描脚本
Dec 10 #Python
class类在python中获取金融数据的实例方法
Dec 10 #Python
Python制作简单的剪刀石头布游戏
Dec 10 #Python
python给list排序的简单方法
Dec 10 #Python
详解java调用python的几种用法(看这篇就够了)
Dec 10 #Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
Dec 10 #Python
You might like
目录,文件操作详谈―PHP
2006/11/25 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
PHP模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
基于jQuery实现的水平和垂直居中的div窗口
2011/08/08 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
5 种JavaScript编码规范
2018/01/30 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
javascript获取元素的计算样式
2019/05/24 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
javascript设计模式 ? 建造者模式原理与应用实例分析
2020/04/10 Javascript
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
CSS3 transforms应用于背景图像的解决方法
2019/04/16 HTML / CSS
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
长青弘远的面试题
2012/06/09 面试题
运动会领导邀请函
2014/01/10 职场文书
《母鸡》教学反思
2014/02/25 职场文书
党风廉政承诺书
2014/03/27 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
护士求职信范文
2014/05/24 职场文书
销售求职信范文
2014/05/26 职场文书
年终考核实施方案
2014/05/26 职场文书
讲座新闻稿
2015/07/18 职场文书
高中政治教学反思
2016/02/23 职场文书
员工升职自我评价
2019/03/26 职场文书
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python