Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >图像处理笔记(7)---- OpenCV 绘制无填充矩形

图像处理笔记(7)---- OpenCV 绘制无填充矩形

作者头像
小火柴棒
发布于 2020-09-21 09:57:21
发布于 2020-09-21 09:57:21
94700
代码可运行
举报
文章被收录于专栏:石开之旅石开之旅
运行总次数:0
代码可运行

练习题:绘制一个没有填充的矩形。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#绘制未填充的矩形
import numpy as np
import cv2 as cv
drawing = False #如果按下鼠标,则为真
mode = True #如果为真,绘制矩形。按m键可以切换到曲线
ix,iy = -1,-1
#鼠标回调函数
def draw_circle(event, x, y, flags, param):
    global ix,iy,drawing,mode
    if event == cv.EVENT_LBUTTONDOWN:
        drawing = True
        ix,iy = x,y
    # elif event == cv.EVENT_MOUSEMOVE:
    #     if drawing == True:
    #         if mode == True:
    #             pass
    #         else:
    #              cv.circle(img,(x.y),5,(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),abs(x-ix),(0,0,255),1)
        
#创建一个黑色的图像,一个窗口,并绑定到窗口的功能
img = np.zeros((512,512,3), np.uint8)
cv.namedWindow('image')
cv.setMouseCallback('image', draw_circle)
while(1):
    cv.imshow('image', img)
    if cv.waitKey(20) & 0xFF == 27:
        break
    elif cv.waitKey(20) & 0xFF == ord('m'):
        mode = not mode
        
cv.destroyAllWindows()

填充的矩形:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
import cv2 as cv
drawing = False #如果按下鼠标,则为真
mode = True #如果为真,绘制矩形。按m键可以切换到曲线
ix,iy = -1,-1
#鼠标回调函数
def draw_circle(event, x, y, flags, param):
    global ix,iy,drawing,mode
    if event == cv.EVENT_LBUTTONDOWN:
        drawing = True
        ix,iy = x,y
    elif event == cv.EVENT_MOUSEMOVE:
        if drawing == True:
            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)
    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.setMouseCallback('image', draw_circle)
while(1):
    cv.imshow('image', img)
    if cv.waitKey(20) & 0xFF == 27:
        break
cv.destroyAllWindows()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
opencv(4.5.3)-python(五)--鼠标作画
首先,我们创建一个鼠标回调函数,当鼠标事件发生时执行。鼠标事件可以是任何与鼠标有关的事件,如左键向下、左键向上、左键双击等。它给我们每个鼠标事件的坐标(x,y)。有了这个事件和位置,我们就可以做我们想做的事情。要列出所有可用的事件,在Python终端运行以下代码。
用户9875047
2022/07/04
5450
图像处理笔记(5)---- OpenCV 用滑动条做调色板
创建一个画板,可以自选各种颜色来绘制各种图形。 import numpy as np import cv2 as cv def nothing(x): pass drawing = False #如果按下鼠标,则为真 mode = True #如果为真,绘制矩形。按m键可以切换到曲线 ix,iy = -1,-1 #鼠标回调函数 def draw_circle(event, x, y, flags, param): r = cv.getTrackbarPos('R','image')
小火柴棒
2020/09/19
5190
【python-opencv】鼠标作为画笔
首先,我们创建一个鼠标回调函数,该函数在发生鼠标事件时执行。鼠标事件可以是与鼠标相关的任何事物,例如左键按下,左键按下,左键双击等。它为我们提供了每个鼠标事件的坐标(x,y)。通过此活动和地点,我们可以做任何我们喜欢的事情。要列出所有可用的可用事件,请在Python终端中运行以下代码:
西西嘛呦
2020/08/26
7850
Python数字图像处理——OpenCV实例解析
cv.ADAPTIVE_THRESH_MEAN_C:该阈值是平均值的附近区域减去恒定的Ç。 cv.ADAPTIVE_THRESH_GAUSSIAN_C:阈值是邻域值减去常数C的高斯加权和。
荣仔_最靓的仔
2021/02/02
1.3K0
Python数字图像处理——OpenCV实例解析
OpenCV学习笔记(Python)
警告: 就算图像的路径是错的, OpenCV 也不会提醒你的,但是当你使用命 令print img时得到的结果是None。
一点儿也不潇洒
2018/08/07
3.8K0
OpenCV学习笔记(Python)
OpenCV-Python学习(15)—— OpenCV 鼠标操作和响应(cv.setMouseCallback)
1. 学习目标 学习如何在OpenCV中处理鼠标事件; 学习鼠标事件与回调; 学习鼠标事件回调函数的基本流程。 2. Callback 基本流程 3. 鼠标事件 cv.setMouseCallback 函数说明 3.1 cv.setMouseCallback() 函数使用 cv.setMouseCallback(winname,onMouse,userdata) 3.2 参数说明 参数 说明 winname 表示监听鼠标事件的窗口。 onMouse 表示响应函数,即当鼠标事件触发时调用的函数。 user
Rattenking
2022/11/21
1.8K0
OpenCV-Python学习(15)—— OpenCV 鼠标操作和响应(cv.setMouseCallback)
Python-OpenCV,基于标准文档的实例(一)
OpenCV是一个C++库,用于实时处理计算机视觉方面的问题,涵盖了很多计算机视觉领域的模块。
王也518
2022/10/26
8310
Python-OpenCV,基于标准文档的实例(一)
使用Python+opencv进行图像处理(一) | 视觉入门
计算机视觉是人工智能最热门的应用领域之一。人工智能技术推动了汽车自动驾驶、机器人以及各种照片处理类软件的巨大发展。目标检测技术也在稳步推进。生成对抗网络(GANs)同样也是人们最近比较关注的一个问题。这些都在向我们展示未来计算机视觉领域的发展前景是多么的不可限量。
磐创AI
2019/05/05
19K0
使用Python+opencv进行图像处理(一) | 视觉入门
OpenCV 系列教程1 | OpenCV 的 GUI 特性
Matplotlib是一个用于Python的绘图库,它提供了多种绘图方法。在这里,将学习如何使用 Matplotlib 显示图像。可以使用 Matplotlib 放大图片,保存图片等。
机器视觉CV
2019/07/15
3.7K0
OpenCV 系列教程1 | OpenCV 的 GUI 特性
[python opencv 计算机视觉零基础到实战] 十八、用鼠标进行画画
putText方法接收图像,文字内容, 坐标 ,字体,大小,颜色,字体厚度这几个参数,我们用中文的函数原型说明如下:
1_bit
2022/01/06
1.3K0
[python opencv 计算机视觉零基础到实战] 十八、用鼠标进行画画
《OpenCV 3计算机视觉 Python语言实现》 第七章 利用python_opencv检测人学习笔记
import cv2 import numpy as np def is_inside(o,i): ox,oy,ow,oh=o ix,iy,iw,ih=i return ox>ix and oy>iy and ox+ow < ix+iw and oy + oh <iy+ih def draw_person(image,person): x,y,w,h = person  cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,255),2) img =cv2.imread("xhs2.jpg") hog=cv2.HOGDescriptor() hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector()) found,w=hog.detectMultiScale(img)#,found1,0,Size(4,4), Size(0,0), 1.05, 2 found_filtered=[] for ri,r in enumerate(found): for qi,q in enumerate(found): if ri != qi and is_inside(r,q): break else: found_filtered.append(r) for person in found_filtered: draw_person(img,person) cv2.imshow('people detection',img) cv2.waitKey(0)
用户2965768
2018/08/30
1K0
OpenCV图像无缝融合-seamlessClone介绍与使用(Python/C++源码)
seamlessClone是OpenCV3后添加的函数,使用此函数可以轻松将一幅图像中的指定目标复制后粘贴到另一幅图像中,并自然的融合。函数说明:
Color Space
2021/03/09
5.2K0
OpenCV简单画板功能实现
画板功能主要包括: 右键切换橡皮擦 左键画圆,椭圆,矩形,直线 键盘输入进行图形的切换 其他功能自己可以自行添加 ---- 具体实现显示如下: 代码贴出: #include <iostream> #include <opencv2/opencv.hpp> #include <cmath> using namespace std; using namespace cv; Rect box; bool drawing_box = false; Rect Eraser; bool drawing_erase
用户9831583
2022/06/16
4950
OpenCV简单画板功能实现
opencv(4.5.3)-python(四)--绘图
要画一条线,你需要传递线的起点和终点坐标。我们将创建一个黑色的图像,在上面画一条从左上角到右下角的蓝线。
用户9875047
2022/07/04
9970
opencv(4.5.3)-python(四)--绘图
简简单单用OpenCV让一只小猫咪变成奶凶奶凶的科技猫
下面将会一步一步演示,并 详细分析内部的原因,会尽量用清晰直观的方式,让大家去理解,以收获更多的知识!
AI算法与图像处理
2021/03/12
4700
简简单单用OpenCV让一只小猫咪变成奶凶奶凶的科技猫
Python-OpenCV,基于标准文档的实例(二)
现在我们来创建一个简单的程序:通过调节滑动条来设定画板颜色。我们 要创建一个窗口来显示显色,还有三个滑动条来设置B,G,R 的颜色。当我们 滑动滚动条是窗口的颜色也会发生相应改变。默认情况下窗口的起始颜色为黑。 cv2.getTrackbarPos() 函数的一个参数是滑动条的名字,第二个参数 是滑动条被放置窗口的名字,第三个参数是滑动条的默认位置。第四个参数是 滑动条的最大值,第五个函数是回调函数,每次滑动条的滑动都会调用回调函 数。回调函数通常都会含有一个默认参数,就是滑动条的位置。在本例中这个 函数不用做任何事情,我们只需要pass 就可以了。 滑动条的另外一个重要应用就是用作转换按钮。默认情况下OpenCV 本 身不带有按钮函数。所以我们使用滑动条来代替。在我们的程序中,我们要创 建一个转换按钮,只有当装换按钮指向ON 时,滑动条的滑动才有用,否则窗 户口都是黑的。
王也518
2022/10/26
5410
Python-OpenCV,基于标准文档的实例(二)
[python opencv 计算机视觉零基础到实战] 十九、简易绘画板制作
上一节我们简单的使用opencv的图形绘制方法,用鼠标绘制了一些内容。上一节所响应的是简单的双击事件EVENT_LBUTTONDBLCLK,在OpenCV的鼠标事件中还有很多。以下将列举出来:
1_bit
2022/01/06
1.5K0
[python opencv 计算机视觉零基础到实战] 十九、简易绘画板制作
opencv绘图函数(cv2.line(),
主要有cv2.line()//画线, cv2.circle()//画圆, cv2.rectangle()//长方形,cv2.ellipse()//椭圆, cv2.putText()//文字绘制
狼啸风云
2020/02/13
15.7K0
opencv绘图函数(cv2.line(),
OpenCV 图像处理:常用绘图函数
linetype:线条的类型 8 型或 cv2.LINE_AA, 默认值为 8 型
timerring
2022/11/07
1K0
OpenCV 图像处理:常用绘图函数
OpenCV-Python学习(11)—— OpenCV 图像几何形状绘制(cv.line、cv.circle、cv.rectangle、cv.ellipse)
1. 学习目标 学会使用 cv.line 绘制一条线; 学会使用 cv.circle 绘制圆; 学会使用 cv.rectangle 绘矩形; 学会使用 cv.ellipse 绘椭圆。 2. 图像公共参数说明 2.1 参数说明 参数 说明 img 表示输入图像,允许单通道灰度图像或多通道彩色图像。 color 表示绘制直线的颜色,(b,g,r) 格式的元组,或者表示灰度值的标量。 thickness 表示绘制直线的粗细,默认值 1px,-1 表示内部填充。 lineType 表示绘制直线的线性,默认为 LIN
Rattenking
2022/11/07
2.6K0
OpenCV-Python学习(11)—— OpenCV 图像几何形状绘制(cv.line、cv.circle、cv.rectangle、cv.ellipse)
推荐阅读
相关推荐
opencv(4.5.3)-python(五)--鼠标作画
更多 >
交个朋友
加入HAI高性能应用服务器交流群
探索HAI应用新境界 共享实践心得
加入腾讯云技术交流站
洞悉AI新动向 Get大咖技术交流群
加入云原生工作实战群
云原生落地实践 技术难题攻坚探讨
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档