opencv官方网址opencv
一、图像读取
从 html canvas 或 img 元素中读取图像
imageSource:元素ID
cv.imread (imageSource)
let src = cv.imread('srcImg');
二、cv.Mat方法
cv.Mat(rows,cols,type) //形成矩阵函数
- rows Mat矩阵的行数
- cols Mat矩阵的列数
- type Mat的类型
Depth
用来度量每一个像素中每一个通道的精度,但它本身与图像的通道数无关!depth数值越大,精度越高。在Opencv中,Mat.depth()得到的是一个0~6的数字,分别代表不同的位数,对应关系如下:enum{CV_8U=0,CV_8S=1,CV_16U=2,CV_16S=3,CV_32S=4,CV_32F=5,CV_64F=6}
其中U是unsigned的意思,S表示signed,也就是有符号和无符号数。
Channel
Mat矩阵元素拥有的通道数。例如常见的RGB彩色图像,channels==3;而灰度图像只有一个灰度分量信息,channels==1。
三、设置图层色彩空间转换
cv.cvtColor(src, dst, code,dstCn);
- src:原图像
- dst:目标图像
- code:默认图片通道是BGR,不是RGB。
- dstCn:输出通道道数,默认为0
四、图像显示
cv.imshow(canvasSource, mat);
- canvasSource: canvas元素
- mat: 矩阵函数
五、绘制图形
- 画线段 cv.line
2. 画圆形 cv.circle
3. 画矩形 cv.rectangle
4. 画椭圆 cv.ellipse
5. 添加文本 cv.putText
文字类型主要有几种:
- cv.FONT_HERSHEY_SIMPLEX 正常尺寸无衬线
- cv.FONT_HERSHEY_PLAIN 小尺寸无衬线
- cv.FONT_HERSHEY_DUPLEX 正常尺寸(类型 1 的复制版)
- cv.FONT_HERSHEY_COMPLEX 正常尺寸有衬线
- cv.FONT_HERSHEY_TRIPLEX 正常尺寸有衬线(类型 4 的复杂版)
- cv.FONT_HERSHEY_COMPLEX_SMALL (类型 4 的小尺寸)
- cv.FONT_HERSHEY_SCRIPT_SIMPLEX 手写风格
- cv.FONT_HERSHEY_SCRIPT_COMPLEX (类型 7 的复杂版)