python使用鼠标在图片上画框

  • python rect.py 图片文件夹
  • 先左击左上角,再右击右下角,画出一个框
  • 结果保存在res文件夹
  • rect.py
python 复制代码
import cv2, sys, os

path=sys.argv[1]
im=cv2.imread(path)
al=os.listdir(path)
al.sort()
if not os.path.exists('res'): os.makedirs('res')


def getInfo(event, x,y,flags,param):
  global xy
  if event == cv2.EVENT_LBUTTONDOWN:
    print x,y 
    xy=[]
    xy.append(x)
    xy.append(y)
  if event == cv2.EVENT_RBUTTONDOWN:
    if len(xy)!=2: 
    	print(len(xy))
    	return
    print x,y
    x1=xy[0]
    y1=xy[1]
    cv2.rectangle(param[0], (x1,y1), (x,y), (0,255,255), 2)
    cv2.imshow('image', param[0])
    cv2.waitKey(1)
    cv2.imwrite('res/'+param[1], param[0])
    xy=[]
    
for a in al:
	if a[-3:] != 'jpg': continue
	im=cv2.imread(path+'/'+a)
	cv2.namedWindow('image', 0)    
	cv2.resizeWindow('image', 1280, 720)
	cv2.imshow('image',im)
	cv2.setMouseCallback("image",getInfo, (im,a))
	cv2.waitKey(0)
	cv2.destroyAllWindows()
相关推荐
刽子手发艺29 分钟前
Selenium+OpenCV处理滑块验证问题
opencv·selenium·webpack
bst@微胖子32 分钟前
Python高级语法之selenium
开发语言·python·selenium
查理零世2 小时前
【蓝桥杯集训·每日一题2025】 AcWing 6118. 蛋糕游戏 python
python·算法·蓝桥杯
魔尔助理顾问3 小时前
一个简洁高效的Flask用户管理示例
后端·python·flask
java1234_小锋3 小时前
一周学会Flask3 Python Web开发-request请求对象与url传参
开发语言·python·flask·flask3
诚信爱国敬业友善6 小时前
常见排序方法的总结归类
开发语言·python·算法
架构默片7 小时前
【JAVA工程师从0开始学AI】,第五步:Python类的“七十二变“——当Java的铠甲遇见Python的液态金属
java·开发语言·python
小哥山水之间8 小时前
在 Python 中操作 Excel 文件
开发语言·python·excel
wang_yb9 小时前
『Python底层原理』--CPython的变量实现机制
python·databook
databook9 小时前
『Python底层原理』--CPython的变量实现机制
后端·python