Opencv从0到1------利用白话文和你一起学cv(第三章)

目录

第三章

一、Opencv的绘图函数

1.画直线

2.画矩形

3.画圆

4.画椭圆

5.画多边形

6.添加文字

二、Opencv的处理鼠标事件函数

1.鼠标事件(注:这些都不用记,知道有这些东西就行了)

 2. 回调函数(注:这个函数得自己写)

3.调用回调函数

三、Opencv实现滑动条式调色板

1.创建一个滑动条

2.调用回调函数接收滑动条的值(绑定图片和滑动条)


第三章

一、Opencv的绘图函数

1.画直线

import cv2 as cv

# img: 目标图像,就是你要在哪张图向上画线
# start_point: 画线开始的坐标,用元组形式表示
# end_point: 画线结束的坐标,永元组形式表示
# color: 画线的颜色选择,颜色取值要用BGR形式
# thickness: 画线的粗细,纯凭经验,自己调节
cv.line(img, start_point, end_point, color, thickness)

# 例如:
cv.line(img, (100,100), (200,200), (0,255,0), 3)

2.画矩形

import cv2 as cv

# img: 目标图像,就是你要在哪张图向上画线
# point1: 要画的矩形左上角坐标,用元组形式表示
# point2: 要画的矩形右下角坐标,用元组形式表示
# color: 画线的颜色选择,颜色取值要用BGR形式
# thickness: 画线的粗细,纯凭经验,自己调节
cv.rectangle(img, point1, point2, color, thickkness)

# 例如:
cv.rectangle(img, (100,100), (200,200), (0,255,0), 3)

3.画圆

import cv2 as cv

# img: 目标图像,就是你要在哪张图向上画圆
# center: 要画的圆的圆心,例如:(100, 100)
# R: 要画的圆的半径,用元组形式表示
# color: 画圆的线段的颜色,颜色取值要用BGR形式
# thickness: 画圆的线段的粗细,纯凭经验,自己调节
cv.circle(img, center, R, color, thickness)

# 例如:
cv.circle(img, (100,100), 50, (0,255,0), 3)

4.画椭圆

import cv2 as cv

# img: 要画的图像
# center: 椭圆的中心
# (a,b): 椭圆的长轴和短轴
# direction: 按照顺时针方向旋转椭圆的角度
# angle_start: 画椭圆开始的角度
# angle_end: 画椭圆结束的角度
# color: 画椭圆的颜色
# thickness: 画椭圆的线段粗细
cv.ellipse(img, center, (a,b), direction, angle_start, angle_end, color, thickness)

# 例如:
cv.ellipse(img, (256,256), (100,50), 0, 0, 360, (255,255,255), 3)

5.画多边形

import cv2 as cv

# img: 要画的图像
# pts: 点的集合,例如:np.array([[10,3],[48,19],[60,3],[98,19]],np.int32)
# isClosed: 多边形是否闭合
# color: 画多边形的线段颜色
# thickness: 画多边形的线段粗细
cv.polylines(img, pts, isClosed, color, thickness)

# 例子:
cv.polylines(img, pts, True, (255,255,255), 3)

6.添加文字

import cv2 as cv

# img: 要添加的文字的图片
# text: 要添加的文字内容
# org: 要添加的文字位置
# fontFace: 要添加的文字的字体
# fontScale: 要添加的文字的字号大小
# color: 要添加的文字的颜色
# thickness: 添加字体时所用的线条宽度
# lineType: 添加字体时的线条种类
cv.putText(img, text, org, fontFace, fontScale, color, thickness,lineType)

# 例子:
cv.putText(img, "DDGZ", (10,40), cv.FONT_HERSHEY)_SIMPLEX, 1, (0,255,0), 3,cv.LINE_AA)

二、Opencv的处理鼠标事件函数

1.鼠标事件(注:这些都不用记,知道有这些东西就行了)

 2. 回调函数(注:这个函数得自己写)

import cv2 as cv

# 回调函数,这里用的是上面的画圆型的例子,也可以改成画直线,画矩形,如果要改,参数注意也要改
# event: 表示是哪种类型的鼠标事件
# x: 鼠标放在图像上的横坐标
# y: 鼠标放在图像上的纵坐标
# flags: 这个可以理解为一个中间商,以后会说到,现在不用理解
# parm: 无需理解
def HuiDiao_HanShu(event, x, y, flags, parm):

    # 这个if语句的意思是:检测到鼠标双击左键就画个圆形
    if event == cv.EVENT_LBUTTONDBLCLK:
        cv.line(img, (x,y), 20, (255,255,255), -1)

3.调用回调函数

import cv2 as cv

# 调用回调函数---说白了就是调用函数呗
# img: 对哪个图像进行操作
# onMouse: 回调函数
cv.setMouseCallback(img, onMouse)
#注:这个说白了就是把img和回调函数绑定在一起,我鼠标在图像上做了相应的操作,就会返回相应的结果

三、Opencv实现滑动条式调色板

1.创建一个滑动条

import cv2 as cv

# Track_name: 滑动条的名字,例如:"DDGZ"
# img: 滑动条所在的画布(就是作用的对象,当我在滑动的时候,哪个图片会跟着变)
# min: 滑动条的最小值
# max: 滑动条的最大值
# TrackbarCallback: 滑动条的回调函数
cv.creatTrackbar(Track_name, img, min, max, TrackbarCallback)

# 例如:
cv.creatTrackbar("DDGZ", img, 0, 255, draw_circle)

2.调用回调函数接收滑动条的值(绑定图片和滑动条)

import cv2 as cv

# Track_name: 滑动条的名字
# img: 滑动条所做用的对象

# 例如:
cv.getTrackbarPos("DDGZ", img)

注: 它的返回值就是你滑动的进度条的位置

总结:1.主要学习:画直线、画矩形、画圆形、画椭圆、画多边形、添加文字的函数

           2.主要学习:鼠标事件的由来。先定义回调函数、再调用回调函数

           3.主要学习:滑动条式调色板。先创建一个滑动条,再绑定滑动条和作用对象(img)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LowKey_Tan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值