【opencv.js】Mat 类型对象的创建、复制以及类型转换

摘要:
JavaScript写法类似于C++写法。

JavaScript 写法类似于 C++ 写法。

相关内容详细介绍请移步官网:【https://docs.opencv.org/3.3.1/de/d06/tutorial_js_basic_ops.html

Mat 类型对象的创建

// 1. 默认构造方式
let mat = new cv.Mat();

// 2. Create a Mat by size and type
let mat = new cv.Mat(size, type);

// 3. Create a Mat by rows, cols, and type 
let mat = new cv.Mat(rows, cols, type)

// 4. Create a Mat by rows, cols, and type with initialization value
let mat = new cv.Mat(rows, cols, type, new cv.Scalar());

// 5. Create a Mat which is full of zeros
let mat = cv.Mat.zeros(rows, cols, type);

// 6. Create a Mat which is full of ones
let mat = cv.Mat.ones(rows, cols, type);

// 7. 对角矩阵
let mat = cv.Mat.eye(rows, cols, type);

// 8. Use JS array to construct a mat.
// For example: let mat = cv.matFromArray(2, 2, cv.CV_8UC1, [1, 2, 3, 4]);
let mat = cv.matFromArray(rows, cols, type, array);

// 9. Use imgData to construct a mat
let ctx = canvas.getContext("2d");
let imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);
let mat = cv.matFromImageData(imgData);

Mat 类型对象的复制

// 1. Clone
let dst = src.clone();
// 2. CopyTo(only entries indicated in the mask are copied)
src.copyTo(dst, mask);

Mat 类型对象的类型转换

src.convertTo(dst, rtype);

免责声明:文章转载自《【opencv.js】Mat 类型对象的创建、复制以及类型转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spring中@Controller和@RestController之间的区别weex-iOS集成下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

greenplum(postgresql) 数据字典

greenplum是基于postgresql开发的分布式数据库,里面大部分的数据字典是一样的。我们在维护gp的时候对gp的数据字典比较熟悉,特此分享给大家。在这里不会详细介绍每个字典的内容,只会介绍常见的应用以及一些已经封装好了的函数。具体的介绍大家可以去看postgresql的中文文档(附件),里面有详细的解释。 1.postgresql中,所有数据库的...

在MongoDB中修改数据类型

引言 本文主要讲解Mongodb的类型转换。包括:string转double, string转int, string转Date。 0. 出现类型不一致的原因 ES导入数据到Mongo后,会出现类型统一改为String的问题。 传统关系型数据库,在设计表处,右键就可以完成修改表类型。 但是非关系型数据库,没有这种实现。只有通过命令行操作实现。 验证表明,可以...

介绍 C# 中的运算符重载 .

介绍 C# 中的运算符重载周融,2007 年 5 月(C) 2001-2007 保留所有权利。 重载是面向对象中的一个重要概念,它是对象多态性的一种不完全体现,人们通常所说的重载,往往指的是函数的重载。本文向读者介绍一种新的重载模型——运算符重载。 在本文中的内容:1、为什么需要运算符重载2、C# 运算符重载决策示例3、C# 运算符重载一览表4、结论 为什...

C++语言体系设计哲学的一些随想(未完待续)

对于静态类型语言,其本质目标在于恰当地操作数据,得到期望的值。具体而言,需要: (1)定义数据类型 你定义的数据是什么,是整形还是浮点还是字符。该类型的数据可以包含的值的范围是什么。 (2)定义操作的含义 操作是严格数据类型相关的。操作表明了对了一个具有特定类型的数据,执行操作后产生什么样结果。  =============================...

参数传递 强制类型转换 自动类型转换 临时变量

0  关于参数传递 类A, 有一个int的数据成员0.1  test1(int i),若A中有一个operator int()的强制类型转换,可以直接传对象。A a;test1(a);0.2  test2(A b),若A中有一个A(int i)的构造函数,可以直接将int作为参数int i = 10;test2(i);//这里自动调用A的构造函数,若传的是...

枚举类型转换成字符串

使用枚举类型默认的ToString()方法,往往不能得到我们想要的输出的字符串。如何方便的定义枚举类型中的每个值代表的字符串输出呢?可以使用DescriptionAttribute, 写上想得到的字符串输出。 enumDirection { [Description("Rover is facing to UP (Negtive Y)")]...