OpenCV小技巧__长期更新

一些杂七杂八的函数和小技巧,不成体系,但挺有用的
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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,174评论 1 32
  • 那是一扇门很少有人进入,那是一条胡同满是怪味,那是一个重金属布满了全身的东西…… 这条看不到出口的胡同,在很长一段...
    紫衫青衣孤灯前阅读 404评论 0 1
  • 我 只是 一个圆 而你给我 画上了光芒 于是我成了太阳
    小倪老师阅读 270评论 2 0
  • 目前大四,实习结束,男票比我低一届,我收拾行囊来到了他的城市,我们在外租了一个房子,1200一个月,两室一厅独厨独...
    不易样的阅读 140评论 0 1
  • 音频:泛听0a,0b循环;精听0a2 视频:无 幼儿园上下学路上继续输入儿歌This is the wa...
    Irene_3eb2阅读 616评论 0 0