python-opencv实现简易画图板

news/2024/12/24 1:30:00/

python-opencv实现简易画图板

# -*- coding: utf-8 -*-
"""
Created on Sat May 19 17:34:54 2018@author: xxx
"""import cv2 as cv
import numpy as npdef nothing(x):pass# 当鼠标按下时变为 True
drawing = False
# 如果 mode 为 True 绘制矩形。按下 'm' 变成绘制曲线
mode = True
ix, iy = -1, -1#创建回调函数
def draw_circle(event, x, y, flags, param):r = cv.getTrackbarPos('R', 'image')g = cv.getTrackbarPos('G', 'image')b = cv.getTrackbarPos('B', 'image')color = (b, g, r)global ix, iy, drawing, mode# 当按下左键是返回起始位置坐标if event == cv.EVENT_LBUTTONDOWN:drawing = Trueix, iy = x, y
#        当鼠标左键按下并移动是绘制图形。event 可以查看移动, flag 查看是否按下elif event == cv.EVENT_MOUSEMOVE and flags == cv.EVENT_FLAG_LBUTTON:if drawing == True:if mode == True:cv.rectangle(img, (ix, iy), (x, y), color, -1)else:# 绘制圆圈,小圆点连在一起就成了线,3代表画笔的粗细cv.circle(img, (ix, iy), 3, color, -1)# 下面注释的代码是起始点为圆心,起点到终点为半径
#               r = int(np.sqrt((x - ix)**2 + (y - iy)**2))
#               cv.circle(img, (x, y), r, (0, 0, 255), -1)
#        当鼠标松开停止绘画elif event == cv.EVENT_LBUTTONUP:drawing == False
#            if mode == True:
#                cv.rectangle(img, (ix, iy), (x, y), (0, 255, 0), -1)
#            else:
#            cv.circle(img, (x, y), 5, (0, 0, 255), -1)#创建一幅黑色图形
img = np.zeros((512, 512, 3), np.uint8)
cv.namedWindow('image')cv.createTrackbar('R', 'image', 0, 255, nothing)
cv.createTrackbar('G', 'image', 0, 255, nothing)
cv.createTrackbar('B', 'image', 0, 255, nothing)
cv.setMouseCallback('image', draw_circle)while(1):cv.imshow('image', img)k = cv.waitKey(1)&0xFFif k == ord('m'):mode = not modeelif k==27:breakcv.destroyAllWindow()

http://www.ppmy.cn/news/473223.html

相关文章

C++课程设计--简易画图程序(MFC)

目录 简介课设题目功能需求实现功能程序运行界面源码结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中…

简单的python画图代码_用python进行简单的画图操作

我用python的matplotlib模块进行简单的画图操作,作为入门参考,下面直接上代码:#coding:utf-8 import numpy as np import matplotlib.pyplot as plt x=np.linspace(-np.pi,np.pi,512,endpoint=True) c=np.cos(x) s=np.sin(x) plt.figure(1) #首先建立一张图figure1 p…

python简单画图示例

1.使用python中matplotlib模块简单的画图脚本示例。 #!/usr/bin/env python # -*- coding: UTF-8 -*-import matplotlib.pyplot as plt import pandas as pd from pandas import DataFramedata1 pd.read_csv("/test/king.xlsx", sep"\t") #print(data1) …

第五章 random模块

1. random模块介绍 random 模块用于实现各种分布的伪随机数生成器,可以根据不同的实数分布来随机生成值,如随机生成指定范围的整数、浮点数、序列等。该模块中的多数函数都取决于 random() 函数,该函数通过 Mersenne Twister 作为核心生成器…

基于大模型的虚拟数字人__虚拟主播实例

基于大模型的虚拟数字人__虚拟主播实例 本文目录: 一、技术的背景: 二、创意名称: 三、创意背景 四、创意目标 五、创意设计 六、技术实现路径 七、完整代码实现 八、创意总结 九、人工智能虚拟人物的一些优秀代表作品及其特点 十、…

基于OpenMV的自动驾驶智能小车模拟系统

一、项目简介 基于机器视觉模块OpenMV采集车道、红绿灯、交通标志等模拟路况信息,实现一辆能车道保持、红绿灯识别、交通标志识别、安全避障以及远程WiFi控制的多功能无人驾驶小车。 赛道规格: 1、编程所需软件: OpenMV:使用Op…

手持终端有什么用?

物联宇手持机可以简单归结为把繁琐、冗长的数据列表,变化成可以扫描、自动匹配、确认的设备,大幅度提高了物品处理的效率,并且把操作人员不断重复核对数据、验收的工作,变成了简单扫描条码的轻松工作,自动匹配&#xf…

手持机如何实现与pc的数据传输怎么做

你买物联宇手持终端的时候应该有数据线,另外PC上的操作软件是MAPSOURCE 。 打开软件就能查看到数据存放的文件夹,复制到电脑就可以了,如果是用无线导入电脑,需要网络稳定的时候传输,更好接收文件数据。 转载于:https:/…