-
图像读取和显示
// 读取
cv.imread(dom) -> dst
// 显示
cv.imshow(dst, dom)
dom(Dom/string): img 标签或其 id(读取) / canvas 标签或其 id(读取/显示)
dst(cv.Mat): 图像(RGBA)
-
创建图像
// 创建一个 Mat 格式的图像
new cv.Mat() -> mat
new cv.Mat(size, type) -> mat
new cv.Mat(rows, cols, type) -> mat
new cv.Mat(rows, cols, type, scalar) -> mat
// 创建一个值全部为零的图像
cv.Mat.zeros(rows, cols, type) -> mat
// 创建一个值全部为一的图像
cv.Mat.ones(rows, cols, type) -> mat
// 创建一个对角线值为一的图像
cv.Mat.eye(rows, cols, type) -> mat
// 使用 JS Array 生成图像
cv.matFromArray(rows, cols, type, array) -> mat
// 使用 canvas ImageData 生成图像
cv.matFromImageData(imgData) - mat
size(cv.size): 图像尺寸
rows(number): 图像高度
cols(number): 图像宽度
type(number): 图像类型(cv.CV_8UC3 ...)
scalar(cv.Scalar): 图像初始值
array(Array): JS 图像数组
imgData(ImageData): canvas 图像数据
mat(cv.Mat): 图像(type)
-
获取图像属性
// 图像高度
mat.rows -> rows
// 图像宽度
mat.cols -> cols
// 图像尺寸
mat.size() -> size
// 图像通道数量
mat.channels() -> channels
// 图像数据类型
mat.type() -> type
mat(cv.Mat): 图像
rows(number): 图像高度
cols(number): 图像宽度
size(cv.Size): 图像尺寸
channles(number): 图像通道数量
type(number): 图像数据类型(cv.CV_8UC3 ...)
-
获取图像数据
mat.data -> data
mat.data8S -> data8S
mat.data16U -> data16U
mat.data16S -> data16S
mat.data32S -> data32S
mat.data32F -> data32F
mat.data64F -> data64F
mat(cv.Mat): 图像
data(Uint8Array): 无符号 8 位整型数据
data8S(Int8Array): 有符号 8 位整型数据
data16U(Uint16Array): 无符号 16 位整型数据
data16S(Int16Array): 有符号 16 位整型数据
data32S(Int32Array): 有符号 32 位整型数据
data32F(Float32Array): 32 位浮点数据
data64F(Float64Array): 64 位浮点数据
-
裁切图像
mat.roi(rect) -> matROI
rect(cv.Rect): 图像裁切区域
matROI(cv.Mat): 裁切图像
-
颜色空间转换
cv.cvtColor(src, dst, code)
src(cv.Mat): 输入图像
dst(cv.Mat): 输出图像
code(number): 转换类型(cv.COLOR_RGBA2RGB ...)
-
图像缩放
cv.resize(src, dst, dsize, fx, fy, interpolation)
src(cv.Mat): 输入图像
dst(cv.Mat): 输出图像
dsize(cv.Size): 目标尺寸
fx(number): x 轴缩放因子
fy(number): y 轴缩放因子
interpolation(number): 插值类型(cv.INTER_LINEAR ...)
-
创建图像向量
new cv.MatVector() -> matVector
matVector(cv.MatVector): 图像向量
-
图像向量操作
// 添加
matVector.push_back(mat)
// 获取
matVector.get(index) -> mat
// 设置
matVector.set(index, mat)
matVector(cv.MatVector): 图像向量
mat(cv.Mat): 图像
index(number): 索引值
-
通道拆分与合并
// 拆分
cv.split(src, channels)
// 合并
cv.merge(channels, dst)
src(cv.Mat): 输入图像
dst(cv.Mat): 输出图像
channels(cv.MatVector): 通道图像向量
-
删除对象
// 删除图像对象
mat.delete()
// 删除图像向量对象
matVector.delete()
mat(cv.Mat): 图像
matVector(cv.MatVector): 图像向量
-
创建视频流
new cv.VideoCapture(videoSource) -> cap
videoSource(Dom/string): video 标签或其 id
cap(cv.VideoCapture): 视频流
-
读取视频帧
cap.read(mat)
cap(cv.VideoCapture): 视频流
mat(cv.Mat): 图像