opencv 画矩形

在这里插入图片描述

import cv2
import numpy as np

class App:
    startX = 0
    startY = 0
    flag_rect = False
    def onmouse(self, event, x, y, flags, param):
        if event == cv2.EVENT_LBUTTONDOWN:
            self.flag_rect = True
            self.startX = x
            self.startY = y
            print('EVENT_LBUTTONDOWN',x,y)
        elif event == cv2.EVENT_LBUTTONUP:
            cv2.rectangle(self.img,
                          (self.startX,self.startY),
                          (x,y),
                          (0,0,255),
                          2
                          )
            # print('EVENT_LBUTTONUP')
            self.flag_rect = False
            pass
        elif event == cv2.EVENT_MOUSEMOVE:
            if self.flag_rect:
                self.img = self.img2.copy()
                cv2.rectangle(self.img,
                              (self.startX,self.startY),
                              (x,y),
                              (0,0,255),
                              2
                              )
            # print('EVENT_MOUSEMOVE')
            pass
    def run(self):
        print('run....')
        cv2.namedWindow('input')
        cv2.setMouseCallback('input',self.onmouse)
        self.img = cv2.imread('imgs/lena.png')
        self.img2 = self.img.copy()
        while(1):
            cv2.imshow('input',self.img)
            k = cv2.waitKey(100)
            if k == 27:
                break
App().run()


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值