中转

作者: a81eefb19dfe | 来源:发表于2020-08-27 10:59 被阅读0次

/*********************************************************************\

*

*                  (c) lkc

*                  All Rights Reserved. lkc Confidential

*

\*********************************************************************/

/*********************************************************************\

*  Title                      :

*

*  Module Description        :

*

*  Author                    : lkc

*

*  Created                    : 2020-8-17

*

\*********************************************************************/

#include "CamControl.h"

#include <math.h>

#define PI acos(-1)

CamControl camCtrlInstance;

//RTSP地址:主码流 rtsp://admin:123456@192.168.0.219:554/mpeg4 子码流 rtsp://admin:123456@192.168.0.123:554/mpeg4cif

//const cv::String adressStr = "rtsp://admin:123456@192.168.5.42:554/mpeg4";

const cv::String adressStr = "rtsp://admin:123456@192.168.5.42:554/mpeg4cif";

bool CamControl::Init()

{

    if (!m_capture.open(adressStr))//派高相机

    {

        printf("m_capture.open fail\n");

        return false;

    }

    printf("m_capture.open success\n");

    m_capture.set(cv::CAP_PROP_FPS, 20.0);//设置帧率 帧/秒

    m_dataRate = m_capture.get(cv::CAP_PROP_FPS);

    m_frameWidth = m_capture.get(cv::CAP_PROP_FRAME_WIDTH);

    m_frameHeight = m_capture.get(cv::CAP_PROP_FRAME_HEIGHT);

    printf("m_dataRate is %.1f\n",m_dataRate);

    printf("m_frameWidth is %d\n",m_frameWidth);

    printf("m_frameHeight is %d\n",m_frameHeight);

//    m_ROIWidth = m_frameWidth;

//    m_ROIHeight = m_frameHeight;

    m_ROIWidth = 640;

    m_ROIHeight = 360;

    m_horizontalViewMax = 2*atan2(PIXEL_SIZE*m_frameWidth/2/1000,FOCUS)*180/PI;

    m_verticalViewMax = 2*atan2(PIXEL_SIZE*m_frameHeight/2/1000,FOCUS)*180/PI;

    printf("m_horizontalViewMax is %.1f\n",m_horizontalViewMax);

    printf("m_verticalViewMax is %.1f\n",m_verticalViewMax);

    return true;

}

bool CamControl::Read(cv::Mat& frame)

{

    cv::Mat imageOrigin;

    if(!m_capture.read(imageOrigin))

    {

        return false;

    }

    m_frameWidth = imageOrigin.cols;

    m_frameHeight = imageOrigin.rows;

    printf("m_frameWidth is %d\n",m_frameWidth);

    printf("m_frameHeight is %d\n",m_frameHeight);

    m_horizontalViewMax = 2*atan2(PIXEL_SIZE*m_frameWidth/2/1000,FOCUS)*180/PI;

    m_verticalViewMax = 2*atan2(PIXEL_SIZE*m_frameHeight/2/1000,FOCUS)*180/PI;

    frame = imageOrigin(cv::Rect(m_frameWidth/2-m_ROIWidth/2,m_frameHeight/2-m_ROIHeight/2,m_ROIWidth,m_ROIHeight));

    return true;

}

void CamControl::SetView(float horizontalViewValue,float verticalViewValue)

{

    //    int widthROI = pixelWidthOrigin*2*FOCUS*tan(m_horizontalView/2*PI/180)/SENSOR_WIDTH;

    //    int heightROI = pixelHeightOrigin*2*FOCUS*tan(m_verticalView/2*PI/180)/SENSOR_HEIGHT;

    m_ROIWidth = 2*FOCUS*tan(horizontalViewValue/2*PI/180)/PIXEL_SIZE*1000;

    m_ROIHeight = 2*FOCUS*tan(verticalViewValue/2*PI/180)/PIXEL_SIZE*1000;

    printf("horizontalViewValue is %.1f\n",horizontalViewValue);

    printf("verticalViewValue is %.1f\n",verticalViewValue);

    printf("now m_ROIWidth is %d\n",m_ROIWidth);

    printf("now m_ROIHeight is %d\n",m_ROIHeight);

    if(m_ROIWidth>m_frameWidth)

    {

        m_ROIWidth = m_frameWidth;

    }

    if(m_ROIWidth<ROI_WIDTH_MIN)

    {

        m_ROIWidth = ROI_WIDTH_MIN;

    }

    if(m_ROIHeight>m_frameHeight)

    {

        m_ROIHeight = m_frameHeight;

    }

    if(m_ROIHeight<ROI_HEIGHT_MIN)

    {

        m_ROIHeight = ROI_HEIGHT_MIN;

    }

}

/********************************************************************\

*

* REVISION RECORDS

*

\*********************************************************************/

/*********************************************************************/

/*

*

*

*

\*********************************************************************/

/*------------------------------The End------------------------------*/

相关文章

  • 中转

    看完这篇文章,你的Python基础就差不多了廖雪峰-Python3教程 菜鸟教程 OpenStack WikiOp...

  • 中转

    兰州,一个中转站,感觉并不是很喜欢这里,但是却给了我足够的时间让我的情绪能够稳稳的转变。 离开家的伤感。奶奶说,…...

  • 中转

    111111111111111111

  • 中转

    11111111111111111111

  • 中转

    /********************************************************...

  • 中转

    醒来之后看到窗外的微光,机身下是茫茫的黄土,不知道在哪里。满天繁星,突然看到了最闪的几颗星星,数了数,再默默把他们...

  • 《中转》

    深刻了我们的,无关爱恨 因为,夜幕之前是黄昏 晴天只会转多云

  • 兽心 中转口

    石墨中转口 微博中转口

  • 幸福中转

    谁是她的终点站? 2010 盛夏。 她一直就有一種來了就再也不會回到這塊土地上的預感,算是應驗了算命仙的鐵口直斷?...

  • 文字中转

网友评论

      本文标题:中转

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