美文网首页OpenCV
OpenCV小技巧__长期更新

OpenCV小技巧__长期更新

作者: SIENTIST | 来源:发表于2018-08-12 17:57 被阅读0次

一些杂七杂八的函数和小技巧,不成体系,但挺有用的
1、inRange函数:
inRange函数人如其名,能够找出一副图像中满足范围的像素点。

    void inRange(InputArray src, InputArray lowerb,
                              InputArray upperb, OutputArray dst);
参数1 src:输入要处理的图像,可以为单通道或多通道。
参数2 lowerb:包含下边界的数组或标量。
参数3 upperb:包含上边界数组或标量。
参数4 dst:输出图像,与输入图像src 尺寸相同且为CV_8U 类型。

请注意:该函数输出的dst是一幅二值化之后的图像,在范围之内的图像像素点为白,否则为黑。
例:

inRange(inputImg, Scalar(minH, minS, minV), Scalar(maxH, maxS, maxV), outImg); 
对于inputImg,满足  
minH<=H<=maxH && minS<=S<=maxS && minV<=V<=maxV
的像素点在outImg中为白色(255),否则为黑色(0)

2、图像的 或 与

bitwise_and、bitwise_or、bitwise_xor、bitwise_not这四个按位操作函数。
void bitwise_and(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 & src2
void bitwise_or(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 | src2
void bitwise_xor(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 ^ src2
void bitwise_not(InputArray src, OutputArray dst,InputArray mask=noArray());//dst = ~src

即 ab = a || b,

3、创建选定尺寸与格式的Mat类
(1)使用Mat的构造函数来创建矩阵
函数原型: Mat(int rows, int cols, int type, const Scalar& s);
例:

    Mat M(20,30,CV_8UC3,Scalar(0,0,255)); 

(2)采用Matlab式的初始化方式:zeros()、ones()、eyes()

Mat E = Mat::eye(4, 4, CV_64F);    //创建主对角线上为1,其余为0的Mat

Mat O = Mat::ones(2, 2, CV_32F);    //创建全为1的Mat

Mat Z = Mat::zeros(3,3, CV_8UC1); //创建全为0的Mat

相关文章

网友评论

    本文标题:OpenCV小技巧__长期更新

    本文链接:https://www.haomeiwen.com/subject/gdosbftx.html