- Python : 3.8.11
- opencv-python : 4.1.2.30
- opencv-contrib-python : 4.1.2.30
- OS : Ubuntu Kylin 20.04
- Conda : 4.10.1
- Pycharm : 2021.1.3
代码示例
import cv2
import numpy as np
def draw_circle(event, x, y, flags, param):
print(event, x, y, flags, param)
# 鼠标左键按下,画绿圈
if event == cv2.EVENT_LBUTTONDOWN:
cv2.circle(image, (x, y), 20, (0, 255, 0), 3)
# 鼠标左键抬起来,画蓝圈
if event == cv2.EVENT_LBUTTONUP:
cv2.circle(image, (x, y), 20, (255, 0, 0), 5)
# 500 * 500 的黑色画布
image = np.zeros((500, 500, 3), np.uint8)
cv2.namedWindow("image")
# 监听事件,设置回调函数
cv2.setMouseCallback("image", draw_circle)
while True:
cv2.imshow("image", image)
# waitKey 不能为0,必须有值,才可以刷新image
# 鼠标点×是关不掉的,只能键盘输入q
if cv2.waitKey(10) == ord("q"):
break
cv2.destroyAllWindows()
运行结果
/home/coder/anaconda3/bin/python3.8 /home/coder/PycharmProjects/pythonProject2/main.py
0 481 103 0 None
0 389 88 0 None
。。。此处省略大部分。。。
0 345 21 0 None
0 347 20 0 None
0 348 20 0 None
0 349 20 0 None
0 351 20 0 None
0 352 19 0 None
0 354 18 0 None
0 357 18 0 None
0 360 17 0 None
0 367 15 0 None
0 370 13 0 None
0 375 11 0 None
0 377 10 0 None
0 381 8 0 None
0 382 8 0 None
0 385 8 0 None
0 388 7 0 None
0 393 5 0 None
0 397 4 0 None
0 403 2 0 None
Process finished with exit code 0
学习推荐
- Python文档 - English
- Python文档 - 中文
- Python规范 PEP
- Python规范 google版
- opencv
- opencv 帮助手册
- Python 源码
- Python PEP
- 优麒麟
- 掘金平台
- gitee平台
Python具有开源、跨平台、解释型、交互式等特性,值得学习。
Python的设计哲学:优雅,明确,简单。提倡用一种方法,最好是只有一种方法来做一件事。
代码的书写要遵守规范,这样有助于沟通和理解。
每种语言都有独特的思想,初学者需要转变思维、踏实践行、坚持积累。