opencv

车辆检测步骤

窗口的展示 图像视频的加载 基本图形绘制 车辆识别

一.显示窗口

1.namedWindow() 窗口名

2.imshow() 显示窗口

3.destroyAllwindows() 销毁所有窗口

4.resizeWindow 将窗口设置大小

二.加载图片

1.imread(path,flag) 显示图片

存在问题:语法检测问题 window与MAC/Linux不同

三.保存图片

1.imwrite(name,img) 保存图片

四.视频采集

VideoCapture( ) read

五.视频录制

VideoWriter(指定输出文件 多媒体文件格式 帧率 分辨率大小) write release

六.设置鼠标回调函数

setMouseCallback(winname,callback,userdata)

窗口名,回调函数,传递参数

callback(event,x,y,flags,userdata)

鼠标事件 坐标 坐标 鼠标键和组合键 传递参数

七:TrackBar控件 滑块

creatTrackbar(trackbarname,winname,value,count,callback,userdata)

控件名,窗口名, trackbar当前值,最大值

getTrackbarPos(trackbarname,winname,当前值)

八:opencv的色彩空间

色彩空间变换 cvtColor( )

颜色空间: RGB 人眼的色彩空间

BGR opencv默认使用

HSV/HSB/HSL 处理图像色彩

Hue:色相 Saturation:饱和度 Value:明度

YUV 主要用于视频 YUV 4:2:0

像素访问

矩阵的+-*/

九:Numpy基本操作

创建矩阵

创建数组array[ ]

创建全0数组 zeros()/ones

创建全值数组 full()

创建单元数组 identity/eye()

检索与赋值[y,x]

[y,x] [y,x,channel]

获取子数组[:,:]

[y1:y2,x1:x2] [:,:]

十.Mat的深拷贝和浅拷贝

浅拷贝:

Mat A

A=imread(file,IMREAD_COLOR)

Mat B

深拷贝:

cv::Mat::clone()

cv::Mat::copyTo()

copy()

十一:访问图像(Mat)的多种属性

#shape属性中包括三种属性

# 高度 长度 通道数

print(img.shape)

#图像占用多大空间

#高度*长度*通道数

print(img.size)

#图像中每个元素的位深

print(img.dtype)

十二:通道的分离和合并

split(mat) 分离

merge((ch1,ch2,......)) 合并

十三:绘制基本图形

画线line (img,开始点,结束点,颜色,线宽,线型,坐标缩放比例)

画矩形 rectangle(img,(10,10),(100,100),(0,0,255)) 画圆 circle

画椭圆 ellipse(img,中心点,长宽一半,角度,从哪个角度开始,到哪个角度结束)

画多边形 polylines(img,点集,是否闭环,颜色,。。。) 填充 fillPoly()

绘制文本 putText

十四:图像的运算

图像相加

图像相减 subtract(A,B) A-B

乘除 multiply(A,B) divide(A,B)

十五:图像的融合

addWeighted(A,alpha,B,bate,gamma)

静态权重

十六:位运算

与 bitwise_and(a,b) 或 bitwise_or(a,b) 非 bitwise_not 异或 bitwise_xor(a,b)

十七:图像的缩放

resize(src,dsize,fx,fy,interpolation=)

插值算法 :插近插值 双线型插值(默认) 三次插值 INTER_AREA

十八:图像的翻转

flip(img,flipCode)flipCode==0 上下 flipCode>0 左右 flipCode<0 上下+左右

十九:图像的旋转

rotate(img,rotateCode) ROTATE_90_CLOCKWISE

ROTATE_180

ROTATE_90_COUNTERCLOCKWISE

二十:仿射变换

旋转 缩放 平移的统称

平移矩阵 每个像素有(x,y)组成

warpAffine(src,M,dsize,flags,mode,value)

变换矩阵 输出尺寸大小 flags与插值算法一致 边界外推法标志 填充边界值

变换矩阵

getRotationMatrix2D(center,angel,scale)

中心点 角度(逆时针) 缩放

变换矩阵2 根据三个点确定

getAffineTransform(src[],dst[])

二十一:透视变换

warPerspective(img,M,())

getPerspectiveTransform(src,dst)

二十二;卷积的相关概念

卷积核 锚点

边界扩充 N=(w-F+2p)/S+1

N输出图像大小 W原图大小 F卷积核大小 P扩充尺寸 S 步长大小

低通滤波 去除录音 平滑图像

filter2D(src,ddepth,kernel,anchor,delta,borderType)

位深 卷积核 锚点 滤波结束后的标记值 边界类

均值滤波blur() 方盒滤波 高斯滤波GaussianBulr()

双边滤波--用于美颜bilateralFilter()

高通滤波 查找图像边缘

Sobel(索贝尔) Scharr(沙尔) Laplacian(拉普拉斯)需要手动降噪

Sobel(src,ddepth,dx,dy,ksiz)

去背景

createBackgroundSubtractorMOG()

history(200)

二值化处理 彩色变黑白

进行形态学处理

滤波去除噪点

缩放

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值