OpenCV4_0 API笔记

前言

有时候总要到处去查这API是啥意思,以及其参数怎么使用,干脆就写一篇博客来记录这些API。

正文

API

1. cv.imread(const String & filename,int flags = IMREAD_COLOR)

  1. 第一个参数是完整的图像路径。
  2. 第二个参数是:

cv.IMREAD_COLOR:加载彩色图像。任何图像的透明度都会被忽视。它是默认标志------>1
cv.IMREAD_GRAYSCALE:以灰度模式加载图像----------->0
cv.IMREAD_UNCHANGED:加载图像,包括alpha通道。--------->-1

2. matplotlib.pyplot.imshow(X, cmap=None)

X: 要绘制的图像或数组。
cmap: 颜色图谱(colormap), 默认绘制为RGB(A)颜色空间。使用比较多的图谱有gray,jet.
在这里插入图片描述

REF

3. np.shape

返回图像的行列和通道数

4. cv.copyMakeBorder

code

CV_EXPORTS_W void copyMakeBorder(InputArray src, OutputArray dst,
                                 int top, int bottom, int left, int right,
                                 int borderType, const Scalar& value = Scalar() );

InputArray src:输入图像
OutputArray dst:输出的图像
int top, int bottom, int left, int right:表示对边界每个方向添加的像素个数,就是边框的粗细程度
int borderType:表示边界的类型

    • BORDER_REPLICATE 重复: 就是对边界像素进行复制
    • BORDER_REFLECT 反射:对感兴趣的图像中的像素在两边进行复制例如:fedcba|abcdefgh|hgfedcb 反射
    • BORDER_REFLECT_101 反射101: 例子:gfedcb|abcdefgh|gfedcba
    • BORDER_WRAP 外包装:cdefgh|abcdefgh|abcdefg
    • BORDER_CONSTANT 常量复制:例子:iiiiii|abcdefgh|iiiiiii
      value:边界的值

5.cv2.addWeighted( )函数说明

code

cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]]) → dst

dst = src1 * alpha + src2 * beta + gamma

src1 – first input array. 【第一张图片】
alpha – weight of the first array elements. 【第一张图片的权重】
src2 – second input array of the same size and channel number as src1. 【与第一张大小和通道数相同的图片】
beta – weight of the second array elements. 【第二张图片的权重】
dst – output array that has the same size and number of channels as the input arrays.【输出,python中可以直接将dst放在前面作为输出】
gamma – scalar added to each sum.【加到每个总和上的标量,相当于调亮度】
dtype – optional depth of the output array; when both input arrays have the same depth, dtype can be set to -1, which will be equivalent to src1.depth().

6. cv2.resize( )函数说明

code

cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) → dst

scr:原图
dsize:输出图像尺寸【注意:在一般表示中,我们用 高 × 宽 × 通道。使用cv2.resize()时,参数输入是 宽 × 高 × 通道 ,与以往操作不同,需要注意。】
fx:沿水平轴的比例因子
fy:沿垂直轴的比例因子
interpolation:插值方法

在这里插入图片描述

7. cv.threshold函数的使用

图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效果。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。OpenCV中提供了函数cv::threshold();
在这里插入图片描述

src:源图像,可以为8位的灰度图,也可以为32位的彩色图像。(两者由区别)
dst:输出图像
thresh:阈值
maxval:dst图像中最大值
type:阈值类型,可以具体类型如下:

在这里插入图片描述
在这里插入图片描述

cv.warpAffine

API

void cv::warpAffine     (   InputArray      src,
        OutputArray     dst,
        InputArray      M,
        Size    dsize,
        int     flags = INTER_LINEAR,
        int     borderMode = BORDER_CONSTANT,
        const Scalar &      borderValue = Scalar() 
    )

参数解释
. src: 输入图像
. dst: 输出图像,尺寸由dsize指定,图像类型与原图像一致
. M: 2X3的变换矩阵
. dsize: 指定图像输出尺寸
. flags: 插值算法标识符,有默认值INTER_LINEAR,如果插值算法为WARP_INVERSE_MAP, warpAffine函数使用如下矩阵进行图像转换
在这里插入图片描述
. borderMode: 边界像素模式,有默认值BORDER_CONSTANT
. borderValue: 边界取值,有默认值Scalar()即0

cv.getRotationMatrix2D函数

code

Mat cv::getRotationMatrix2D     (   Point2f     center,
        double      angle,
        double      scale 
    )   

参数解释
. center: Point2f类型,表示原图像的旋转中心
. angle: double类型,表示图像旋转角度,角度为正则表示逆时针旋转,角度为负表示逆时针旋转(坐标原点是图像左上角)
. scale: 缩放系数
函数计算如下矩阵:

cv2.GetAffineTransform()

仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。仿射变换需要一个M矩阵,但是由于仿射变换比较复杂,一般直接找很难找到这个矩阵,opencv提供了根据变换前后三个点的对应关系来自动求解M的函数,这个函数就是:
code

M=cv2.GetAffineTransform(src, dst)

src:原始图像中的三个点的坐标
dst:变换后的这三个点对应的坐标
M:根据三个对应点求出的仿射变换矩阵

参考

  1. OpenCV-Python-Tutorial-中文版20160814.pdf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值