一、图片读取
const {imread,imshow,imwrite,waitKey,destroyWindow} =require('opencv4nodejs');
const src = imread('./imge/1.jpg') //读取图片
console.log(src) //表示矩阵的大小(就是长宽)
console.log(src.sizes) //表示矩阵的大小(就是长宽)
console.log(src.elemSize) //表示三种颜色
console.log(src.elemSize*src.sizes[0]*src.sizes[1])//表示图像的大小也就是长*宽*三色
console.log(src.getDataAsArray().length) //这张图片的原始矩阵
imshow('222',src)
imwrite("./55.jpg",src)
waitKey()
二、读取摄像头
const {VideoCapture,imshow,waitKey,destroyWindow} = require('opencv4nodejs')
/*摄像头的设备id,如果只有一个可以写0 表示打开默认的摄像头,也可以是文件路径*/
const Capture =new VideoCapture(0)
/*循环*/
while (true) {
/*读取摄像头的最后一帧*/
let frame = Capture.read();
/* 图像反转 参数为数值*/
frame =frame.flip(180)
/*显示视频*/
imshow('video',frame)
/*10m后播放下一帧*/
waitKey(10)
}
destroyWindow('video')
三、改变图片的颜色
const {imread,imshow,waitKey} = require('opencv4nodejs')
const src = imread('./imge/1.jpg')
const src2 = imread('./imge/2.png')
// console.log(src.getDataAsArray().length)
// console.log(src.getData())
// let bitwies = src.bitwiseNot() //色阶取反
// let bitwies = src.bitwiseOr(src2) //色阶取或
let bitwies = src.bitwiseAnd(src2) //色阶取与
// let bitwies = src.bitwiseAnd(src2) //色阶取异或
imshow('sss',bitwies)
waitKey()
四、自定义三通道图像
const {imread,imshow,waitKey,Mat,CV_8UC3,CV_8UC1,imshowWait} = require('opencv4nodejs')
const rows = 1000; // height
const cols = 1000; // width
// const emptyMat = new Mat(rows, cols, CV_8UC1,255); // CV_8UC1白色单通道
const emptyMat = new Mat(rows, cols, CV_8UC3,[0,0,255]); // CV_8UC3 三单通道
imshowWait("111",emptyMat)
waitKey()
五、色彩空间
const {imread,imshow,
waitKey,
COLOR_RGB2GRAY,
COLOR_BGR2GRAY, COLOR_BGR2HSV,COLOR_RGB2YUV,
COLOR_RGB2YCrCb
} =require('opencv4nodejs')
const src = imread("./1.jpg")
// const ctvcolor = src.cvtColor(COLOR_RGB2GRAY) /RGB转换为GRAY GRAY是单通道
const gary = src.cvtColor(COLOR_BGR2GRAY)
imshow('gary',gary)
const hsv = src.cvtColor(COLOR_BGR2HSV) //RGB转换为HSV
imshow('hsv',hsv)
const yuv = src.cvtColor(COLOR_RGB2YUV) //RGB转换为HSV
imshow('yuv',yuv)
const Ycrcb = src.cvtColor(COLOR_RGB2YCrCb) //RGB转换为YCrCb
imshow('Ycrcb',Ycrcb)
waitKey()