基于pygame 图片多边形坐标获取
基于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 图片多边形坐标获取相关推荐
- 图片坐标提取软件/图片坐标点和像素点颜色提取软件/图片坐标获取工具/Python图片坐标获取源码/图片像素坐标获取软件/python tkinter 图片显示(完全开源)
该软件使用python写的,可以提取像素点的坐标还有也能获取像素点的16进制数据RGB565和RGB888(RGB888仅最新的源码才支持),可以单点坐标也可以按键坐标,甚至可以使用简单的左右键配合使 ...
- 识别图片文本坐标;透视变换;输入点集坐标,输出凸包(最大多边形)顶点坐标
'''识别图片文本坐标 ''' import cv2 import pytesseract from pytesseract import Output from PIL import Image f ...
- Python:批量增强图片清晰度 ——基于百度API,含获取的AK、 SK的流程,access_token的获取流程,以及生成.exe文件
Python:批量增强图片清晰度 --基于百度API,含获取的AK. SK的流程,access_token的获取流程,以及生成.exe文件 最近需要提高一些图片的清晰度,但一张张的去弄太费时间了,所以 ...
- lisp获取qleader端点_基于AutoLISP的点坐标标注
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!! (10)造型完成 至此,完成了该变速器总成所有气管的三维造型. ...
- python3.7魔塔游戏_基于pygame的开发:魔塔小游戏开发
前言 第一次写博客,如果写的不好欢迎评论指正. 前端时间跟着廖雪峰大神的教程学习了python,本着"实践是检验真理的唯一标准",我尝试着使用pygame库来开发经典的策略RPG& ...
- 基于pygame实现的飞机大战游戏
目录 1.引言 1.1 背景 1.2 意义 1.3 功能 2.系统结构 2.1 整体框架 2.2 精灵与精灵组 2.3 功能介绍 2.3.1 玩家飞机 2.3.2 敌机类型和关卡设定 2.3.3 敌机 ...
- python 基于pygame实现俄罗斯方块
一.简单说明 80.90后的小伙伴都玩过"俄罗斯方块",那种"叱咤风云"场景 偶尔闪现在脑海 真的是太爽了:如果没有来得及玩过的同学,这次可以真正的自己做一个了 ...
- 【Python案例】基于Pygame黑白棋游戏(附源码)
有没有小火伴是特别喜欢玩五子棋的,我记得我初中是特别喜欢的.于是,我今天就用Python给大家写了一个黑白棋游戏.代码放在下面了. 01.绘制棋盘 Python学习交流Q群:906715085### ...
- Python版基于pygame的玛丽快跑小游戏源代码,玛丽冒险小游戏代码,支持双人模式
基于pygame的玛丽快跑小游戏源代码,玛丽冒险小游戏代码,支持双人模式 按空格进入单人模式,按't'进入双人模式,双人模式下玛丽1采用空格键上跳,玛丽2采用方向上键上跳. 完整代码下载地址:Pyth ...
最新文章
- linux数据库创建score表,MySQL数据库学习笔记
- python 字符串前面加 f
- 将本地win10作为web服务器
- python安装库-python 安装库
- mysql sql优化_MySQL数据库SQL语句优化原理专题(三)
- 使用Boost.Compute的STL 在GPU上添加两个向量的实现
- IntelliJ IDEA 2019 激活码 | 全产品 | 跨平台 | Goland | PhpStorm | Rider | CentOS | Windows
- 坑!自己走过的坑...
- 小程序json字符串取值问题,怎么取出来的是undefined,eval函数不能用?
- python dict hash_【python-dict】dict的使用及实现原理
- 如何做相册_苹果手机相册不想让人看怎么办?看这里教你加密
- [LeetCode][easy]Create Target Array
- jeecms mysql_JeeCms的环境搭建 | 学步园
- 通过 BTC 联动程度判断牛熊
- ardupilot避障代码分析
- 泛型编程和STL基础学习(C++)(未完待续)
- IceCTF - All your Base are belong to us
- 软件工程专业的论文答辩_2015软件工程硕士论文答辩流程
- HEG安装及hdf文件转tif文件批处理
- [转载].NET商业软件源码保护