2022-12 opencv教程 task4

13 图像像素值统计信息

  • opencv中都是分别对通道进行统计 灰度图

像素值统计-均值-方差

  • 均值 方差 - 单通道为例 通过mask可以对不同位置的像素进行统计

像素值统计-极值

  • 最大,最小
  • 最大,最小的像素值所在位置

OpenCV函数支持

cv.mean(src[,mask])->retval
cv.meanStdDev(src[, mean[, stddev[, mask]]])->mean, stddev
cv.minMaxLoc(src[,mask])->minVal, maxVal, minLoc, maxLoc
- src 输入图像
- mask 计算区域
- mean,stddev,minVal,maxVal 分别表示均值,标准方差,最小与最大

均值应用

  • dst=(src-mean)*contrast

cv.convertScaleAbs(src[, dst[, alpha[, beta]]]) ->dst
- On each element of the input array, the function convertScaleAbs performs three operations sequentially: scaling, taking an absolute value, conversion to an unsigned 8-bit type
- src dst 输入输出图像
- alpha 可选scale factor
- beta 可选delta added to the scaled values


14 图像几何形状绘制

几何形状

  • 支持绘制 线、矩形、圆形
  • 支持填充 矩形、圆形、椭圆
  • 支持绘制文本

几何形状-函数

  • 相关函数 cv.line() cv.circle() cv.rectangle() cv.ellipse() cv.putText()
    - img 输入图像 必须和color相匹配
    - color 颜色,如(255,0,0)表示蓝色
    - thickness 线宽,>0表示绘制stroke,<0表示填充fill
    - lineType 渲染模式,属于计算机图形学,默认LINE_8, LINE_AA表示反锯齿
    • FILLED
    • LINE_4 钜齿线 表示使用的算法计算出的属于线段上的像素点,相邻的两点之间只有四个方向。
    • LINE_8 钜齿线 表示使用的算法计算出的属于线段上的像素点,相邻的两点之间只有八个方向。
    • LINE_AA “antialiased line”,为抗钜齿线 表示使用的算法计算出的属于线段上的像素点,相邻的两点之间是大于八个方向的

文本绘制

cv.putText(img, text, pos, fontFace,fontScale,color[, thickness[, lineType[, bottomLeftOrigin]]]) → img
  • putText 默认只支持英文
  • pos 文字起始坐标点,文本字符串 左下角坐标 ,(x, y) 格式的元组
  • fontFace 字体类型 最常见的是cv.FONT_HERSHEY_SIMPLEX cv.FONT_HERSHEY_PLAIN
  • fontScale 字体大小,字体缩放比例因子

计算文本区域大小

  • 函数计算文本区域大小函数
getTextSize(
 text,      #文本信息
 fontFace,  #字体类型
 fontScale, #字体大小,字体缩放比例因子
 thickness  #线宽 ,-1 表示内部填充
)

- 返回 (fw,fh) 文本信息区域大小的宽高,bh 与字体的基线baseline位置

15 随机数与随机颜色

Python中的随机数函数

- Numpy中的随机函数
random,randint(low, high=None, size=None, dtype=int)
- Low 低值,high 高值,size 维度, dtype 类型

随机噪声图

cv.randn(dst, mean, stddev)
- 生成目标图像dst
- 噪声均值mean
- 噪声方差 stddev

随机颜色

  • 修改color与thickness参数实现随机色填充与绘制

随机噪声图像

16 多边形填充与绘制

多边形绘制函数

cv.fillPoly(img, pts, color[, lineType[, shift[, offset]]])->img
-填充多边形
- pts 数据类型 CV_32S
cv.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])->img
-绘制多边形
- pts 一个或多个点集
- color 颜色
- isClosed闭合标志为True时绘制若干个闭合多边形,闭合标志为False时绘制一条连接所有点的折线
- thickness 线宽,必>0
- lineType 渲染方式 默认LINE_8
- shift 坐标精确到小数点后几位

点集支持

  • pts表示一个或者多个点集
浙ICP备19012682号