前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >opencv学习(一):安装以及相关基础概念

opencv学习(一):安装以及相关基础概念

作者头像
flytam
发布2020-01-14 17:55:39
6180
发布2020-01-14 17:55:39
举报
安装

mac 环境配置

1、安装 cmake

代码语言:javascript
复制
brew install cmake

2、安装 opencv4nodejs

代码语言:javascript
复制
npm i -s opencv4nodejs

国内网络原因可能会安装失败,多试几次可能就好了,比较玄学。实在仍然不行,可能需要配置下代理。

基础概念

最重要的就是:Mat 类,也就是矩阵

图像在 opencv 是以矩阵形式表示,在opencv中表示为Mat类。例如我们常见的 RGB 图片,就是图片的每一个像素就是一个三通道(注意在 opencv 中是以 BGR 的顺序存储)。

关于通道的区别可以参考

例如

[[255, 0, 0], [255, 0, 0], [255, 0, 0]]可以看作是一个 1*3 的图像,每一个像素的 BGR 分别是(255, 0, 0)(255, 0, 0)(255, 0, 0)

例如在opencv4nodejs中,初始化一个 3*3 3 通道的图像可以

代码语言:javascript
复制
const matData = [
  [[255, 0, 0], [255, 0, 0], [255, 0, 0]],
  [[0, 0, 0], [0, 0, 0], [0, 0, 0]],
  [[255, 0, 0], [255, 0, 0], [255, 0, 0]]
];
const matFromArray = new cv.Mat(matData, cv.CV_8UC3);

// 把这个图像展示出来
cv.imshowWait("展示直接通过矩阵像素展示的图像", matFromArray);

关于 Mat实例相关字段解释

代码语言:javascript
复制
Mat = {
rows : number ,// 行数
cols : number ,//列数
type : number ,// 表示了矩阵中元素的类型以及矩阵的通道个数,它是一系列的预定义的常量,其命名规则为CV_(位数)+(数据类型)+(通道数)。
channels : number ,// 通道数,例如rgb就是三通道
depth : number ,//每一个像素的位数。矩阵中元素的一个通道的数据类型,这个值和type是相关的。例如 type为 CV_16SC2,一个2通道的16位的有符号整数。那么,depth则是CV_16S。depth也是一系列的预定义值,将type的预定义值去掉通道信息就是depth值:CV_8U CV_8S CV_16U CV_16S CV_32S CV_32F CV_64F。在opencv中0、1代表8位,2、3代表16位,4、5代表32位,6代表64位
dims : number ,// 矩阵的维度,例如5*6矩阵是二维矩阵,则dims=2,三维矩阵dims=3.
empty : boolean ,// 图像是否为空
step : number ,
elemSize : number ,//矩阵一个元素占用的字节数,例如:type是CV_16SC3,那么elemSize = 3 * 16 / 8 = 6 bytes
sizes : number [] //矩阵的大小,[cols,rows],如果矩阵的维数大于2,则是size[-1,-1]
}

具体参考

一些解释:

  • CV_8UC3 表示使用 8 位的 unsigned char 型(0-255),每个像素由三个元素组成三通道,opencv 内部还定义了很多这种常量。
  • imshowWait函数是把矩阵信息转换成图像并展示出来,键盘输入后关闭
  • opencv4nodejs中读取图像 const image = cv.imread("....url");
  • RGB 通俗定义,我们可以理解为我们所见的颜色是有 R(红色)、G(绿色)、B(蓝色)组成。通常情况下,RGB 各有 256 级亮度,用数字表示为从 0、1、2…直到 255,从暗到亮 共 256 种,按照计算,256 级的 RGB 色彩总共能组合出约 1678 万种色彩,即 256×256×256=16777216。通常也被简称为 1600 万色或千万色。也称为 24 位色(2 的 24 次方)。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 基础概念
  • 最重要的就是:Mat 类,也就是矩阵
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档