基于pygame 图片多边形坐标获取

  • 简介
  • 视频效果预览
  • 一、取坐标点 draw.py
  • 二、检测生成的坐标点是否正确 test.py

简介

做目标检测的时候,设置检测区域可以有效减少误识别。之前画区域比较少,都是通过ps一点点取坐标,画面一变动就得重新画区域,一直想着自己开发一个脚本来方便取坐标。


视频效果预览

基于pygame 图片多边形坐标获取

使用的是pygame库,在窗口加载图片,设置窗口的大小为图片的宽高。监听窗口内鼠标点击的坐标,最后关闭窗口的时候保存坐标到指定文件。


一、取坐标点 draw.py

import sys
import pygame
from PIL import Imageif __name__ == '__main__':# 输入图片文件input = sys.argv[1] # 输出坐标保存文件ouput = sys.argv[2]image = Image.open(input).convert('RGB')width = image.size[0]height = image.size[1]pygame.init()# 创建Surface屏幕对象,大小为图片的宽高screen = pygame.display.set_mode([width, height])# 加载图片back_image = pygame.image.load(input)# 绘制图像screen.blit(back_image, [0, 0])# 用来存储单个框和所有框的坐标点points = []total_points = []while True:for event in pygame.event.get():# 通过监听ESC按键来判断一个框的结束,并清空数组重新记录另一个框if event.type == pygame.KEYDOWN:total_points.append(points)points = []if event.type == pygame.QUIT:# 点击关闭窗口的时候,把坐标点都保存到指定的文件with open('1.txt', mode='+w') as fs:fs.write(str(total_points))fs.close()# 退出程序sys.exit()if event.type == pygame.MOUSEBUTTONDOWN:# 重新加载图片,是为了把每次都重新按照顺序画线,不然会出现三点一闭合,不连贯问题back_image = pygame.image.load(input)# 绘制图像screen.blit(back_image, [0, 0])pos = event.pospoints.append([pos[0], pos[1]])# 绘画多个框if len(total_points) > 0:for poly in total_points:pygame.draw.polygon(screen, (255, 0, 0), poly, 3)# 两点成线,这里必须有两个坐标以上才能划线if len(points) > 1:pygame.draw.polygon(screen, (255, 0, 0), points, 3)# 在窗口的顶部实时显示鼠标所在坐标position = pygame.mouse.get_pos()pygame.display.set_caption(str(position))# 将内容显示到屏幕上pygame.display.flip()

执行命令 python draw.py 1.jpg 1.txt

二、检测生成的坐标点是否正确 test.py

import cv2
import sys
import numpy as npif __name__ == '__main__':file = sys.argv[1]input = sys.argv[2]ouput = sys.argv[3]# 读取文件中的坐标点with open(file) as fs:poly_list = eval(fs.read())fs.close()img = cv2.imread(input)for poly in poly_list:pts = np.array(poly, np.int32)# 画线cv2.polylines(img, [pts], isClosed=True, color=(0, 0, 255), thickness=2)cv2.imwrite(ouput, img)

执行命令 python test.py 1.txt 1.jpg 2.jpg


基于pygame 图片多边形坐标获取相关推荐

  1. 图片坐标提取软件/图片坐标点和像素点颜色提取软件/图片坐标获取工具/Python图片坐标获取源码/图片像素坐标获取软件/python tkinter 图片显示(完全开源)

    该软件使用python写的,可以提取像素点的坐标还有也能获取像素点的16进制数据RGB565和RGB888(RGB888仅最新的源码才支持),可以单点坐标也可以按键坐标,甚至可以使用简单的左右键配合使 ...

  2. 识别图片文本坐标;透视变换;输入点集坐标,输出凸包(最大多边形)顶点坐标

    '''识别图片文本坐标 ''' import cv2 import pytesseract from pytesseract import Output from PIL import Image f ...

  3. Python:批量增强图片清晰度 ——基于百度API,含获取的AK、 SK的流程,access_token的获取流程,以及生成.exe文件

    Python:批量增强图片清晰度 --基于百度API,含获取的AK. SK的流程,access_token的获取流程,以及生成.exe文件 最近需要提高一些图片的清晰度,但一张张的去弄太费时间了,所以 ...

  4. lisp获取qleader端点_基于AutoLISP的点坐标标注

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!! (10)造型完成 至此,完成了该变速器总成所有气管的三维造型. ...

  5. python3.7魔塔游戏_基于pygame的开发:魔塔小游戏开发

    前言 第一次写博客,如果写的不好欢迎评论指正. 前端时间跟着廖雪峰大神的教程学习了python,本着"实践是检验真理的唯一标准",我尝试着使用pygame库来开发经典的策略RPG& ...

  6. 基于pygame实现的飞机大战游戏

    目录 1.引言 1.1 背景 1.2 意义 1.3 功能 2.系统结构 2.1 整体框架 2.2 精灵与精灵组 2.3 功能介绍 2.3.1 玩家飞机 2.3.2 敌机类型和关卡设定 2.3.3 敌机 ...

  7. python 基于pygame实现俄罗斯方块

    一.简单说明 80.90后的小伙伴都玩过"俄罗斯方块",那种"叱咤风云"场景 偶尔闪现在脑海 真的是太爽了:如果没有来得及玩过的同学,这次可以真正的自己做一个了 ...

  8. 【Python案例】基于Pygame黑白棋游戏(附源码)

    有没有小火伴是特别喜欢玩五子棋的,我记得我初中是特别喜欢的.于是,我今天就用Python给大家写了一个黑白棋游戏.代码放在下面了. 01.绘制棋盘 Python学习交流Q群:906715085### ...

  9. Python版基于pygame的玛丽快跑小游戏源代码,玛丽冒险小游戏代码,支持双人模式

    基于pygame的玛丽快跑小游戏源代码,玛丽冒险小游戏代码,支持双人模式 按空格进入单人模式,按't'进入双人模式,双人模式下玛丽1采用空格键上跳,玛丽2采用方向上键上跳. 完整代码下载地址:Pyth ...

最新文章

  1. linux数据库创建score表,MySQL数据库学习笔记
  2. python 字符串前面加 f
  3. 将本地win10作为web服务器
  4. python安装库-python 安装库
  5. mysql sql优化_MySQL数据库SQL语句优化原理专题(三)
  6. 使用Boost.Compute的STL 在GPU上添加两个向量的实现
  7. IntelliJ IDEA 2019 激活码 | 全产品 | 跨平台 | Goland | PhpStorm | Rider | CentOS | Windows
  8. 坑!自己走过的坑...
  9. 小程序json字符串取值问题,怎么取出来的是undefined,eval函数不能用?
  10. python dict hash_【python-dict】dict的使用及实现原理
  11. 如何做相册_苹果手机相册不想让人看怎么办?看这里教你加密
  12. [LeetCode][easy]Create Target Array
  13. jeecms mysql_JeeCms的环境搭建 | 学步园
  14. 通过 BTC 联动程度判断牛熊
  15. ardupilot避障代码分析
  16. 泛型编程和STL基础学习(C++)(未完待续)
  17. IceCTF - All your Base are belong to us
  18. 软件工程专业的论文答辩_2015软件工程硕士论文答辩流程
  19. HEG安装及hdf文件转tif文件批处理
  20. [转载].NET商业软件源码保护

热门文章

  1. 计算机win7不断重启,win7系统电脑一开机就自动重启的解决方法
  2. 我的第一个WFF项目
  3. 引入图标字体的三种方式
  4. 通过Alertmanager实现Prometheus的告警告警配置(邮箱加钉钉)
  5. ③读后感之《异类不一样的成功启示录》格拉德威尔
  6. 代沐研:渡尽劫波非农在,空头有望脱苦海
  7. 【Android容器组件—LinearLayout】
  8. 先进制造技术论文_轴承先进锻造工艺及制造技术
  9. 入手评测AMD锐龙r7 6800u和酷睿i7 1260p选哪个 r76800u和i71260p对比
  10. 校园二手平台使用说明