美文网首页
inRange函数, openCV坐标系,几何质心计算

inRange函数, openCV坐标系,几何质心计算

作者: 狐度计算 | 来源:发表于2018-12-28 15:10 被阅读0次

    圣诞节又到啦嘻嘻!!!近来着手智能交通的一些项目,从中总结了几个常用的小点,分享出来以方便大家:

    1. inRange函数:
      先祭出openCV的函数原型
    void cv::inRange(InputArray src, InputArray lowerb, InputArray upperb, OutputArray dst) 
    

    简单来说,这个函数就是用来判断输入图像src中每一个像素(pixel)是否在[lowerb,upperb]之间(Note:观察集合的开闭)。若为true则dst相应的像素赋为255,反之则赋为0。因此,该函数输出的dst将会是一幅二值化图像。
    对于单通道图像的情况:
    若一幅灰度图像src的某个像素的值在lowerb,upperb两个阈值范围之间,则dst对应的该像素值为255,相反则为0,这样便生成一幅二值化的输出图像dst。


    image.png

    对于双通道图像的情况:


    image.png

    即意味着当输入图像src的每个通道的像素值都在规定的[lowerb,upperb]阈值范围内时,二值化输出图像dst对应的像素值为255,若不能完全满足规定的条件,则dst对应的像素值为0。
    三通道图像的情况以此类推。

    1. openCV坐标系:
      原点的位置是在图像的左上角,对于Mat, Rect, Point等等皆适用,在openCV的(x,y)坐标系中,x由左往右增大,y由上往下增大。


      image.png

    在一张图像中,对一个Rect 取的(x,y)即矩形自身的左上角坐标。

    1. 几何质心计算:
      做物体检测时,很多时候会有定位物体轮廓质心的需要,所以这里简单解释一下怎么计算轮廓质心坐标。
      那什么是轮廓呢嘻嘻?如下是一个轮廓实例~
      image.png
      在计算轮廓质心坐标前得先提一下“空间矩”(spatial moments)同学。
      什么是空间矩呢?具体数学原理这里就不多说了(怕睡着),感兴趣的请参照:https://en.wikipedia.org/wiki/Image_moment
      还有openCV提取空间矩的函数细节:https://docs.opencv.org/3.0-beta/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html
      好~废话不多说,直接说怎么计算质心坐标了
      轮廓点集表示为A,设质心为(x,y), openCV的矩计算函数为moment(),有
      轮廓的空间矩为:moment(A),
      则有
      x=moment(A).m10/moment(A).m00
      y=moment(A).m01/moment(A).m00
      (Note!: m10, m00, m01 都是相关的数学参数,具体请参照空间矩的数学理论哦~)
      到这里,总结完了咯~ 狐狐祝大家都有个快快乐乐的圣诞,比如不加班嘻嘻~

    相关文章

      网友评论

          本文标题:inRange函数, openCV坐标系,几何质心计算

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