Skip to content

Commit

Permalink
changed some comment
Browse files Browse the repository at this point in the history
  • Loading branch information
root authored and root committed Oct 4, 2023
1 parent 55bf634 commit dba3d6f
Show file tree
Hide file tree
Showing 35 changed files with 5,087 additions and 4,670 deletions.
2 changes: 1 addition & 1 deletion 3rdparty/fmt
Submodule fmt updated from 02cae7 to b3bf23
241 changes: 143 additions & 98 deletions base/RobotVision_Sirius.cpp

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions base/RobotVision_Sirius.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,8 @@
auto idntifier = fmt::format(fg(fmt::color::green) | fmt::emphasis::bold, "RobotVision");
time_t time_now = time(0);
bool fire;
long long rec_time=0;
int rec_cnt=0;

// 已处理帧数个数
long long rec_time = 0;

int rec_cnt = 0;
45 changes: 0 additions & 45 deletions configs/armor/basic_armor_config_new.xml
Original file line number Diff line number Diff line change
@@ -1,45 +0,0 @@
<?xml version="1.0"?>
<opencv_storage>
<GRAY_EDIT>0</GRAY_EDIT>
<COLOR_EDIT>0</COLOR_EDIT>
<METHOD>0</METHOD>
<BLUE_ARMOR_GRAY_TH>80</BLUE_ARMOR_GRAY_TH>
<RED_ARMOR_GRAY_TH>45</RED_ARMOR_GRAY_TH>
<RED_ARMOR_COLOR_TH>110</RED_ARMOR_COLOR_TH>
<BLUE_ARMOR_COLOR_TH>110</BLUE_ARMOR_COLOR_TH>
<GREEN_ARMOR_COLOR_TH>10</GREEN_ARMOR_COLOR_TH>
<WHILE_ARMOR_COLOR_TH>240</WHILE_ARMOR_COLOR_TH>
<H_RED_MIN>0</H_RED_MIN>
<H_RED_MAX>60</H_RED_MAX>
<S_RED_MIN>130</S_RED_MIN>
<S_RED_MAX>255</S_RED_MAX>
<V_RED_MIN>30</V_RED_MIN>
<V_RED_MAX>255</V_RED_MAX>
<H_BLUE_MIN>90</H_BLUE_MIN>
<H_BLUE_MAX>160</H_BLUE_MAX>
<S_BLUE_MIN>130</S_BLUE_MIN>
<S_BLUE_MAX>255</S_BLUE_MAX>
<V_BLUE_MIN>30</V_BLUE_MIN>
<V_BLUE_MAX>255</V_BLUE_MAX>
<LIGHT_EDTI>0</LIGHT_EDTI>
<LIGHT_DRAW>1</LIGHT_DRAW>
<LIGHT_RATIO_W_H_MIN>1</LIGHT_RATIO_W_H_MIN>
<LIGHT_RATIO_W_H_MAX>15</LIGHT_RATIO_W_H_MAX>
<LIGHT_ANGLE_MIN>45</LIGHT_ANGLE_MIN>
<LIGHT_ANGLE_MAX>45</LIGHT_ANGLE_MAX>
<LIGHT_PERIMETER_MIN>16</LIGHT_PERIMETER_MIN>
<LIGHT_PERIMETER_MAX>1000</LIGHT_PERIMETER_MAX>
<ARMOR_FORECAST>0</ARMOR_FORECAST>
<ARMOR_EDIT>1</ARMOR_EDIT>
<ARMOR_DRAW>1</ARMOR_DRAW>
<ARMOR_HEIGHT_RATIO_MIN>2</ARMOR_HEIGHT_RATIO_MIN>
<ARMOR_HEIGHT_RATIO_MAX>20</ARMOR_HEIGHT_RATIO_MAX>
<ARMOR_WIDTH_RATIO_MIN>5</ARMOR_WIDTH_RATIO_MIN>
<ARMOR_WIDTH_RATIO_MAX>30</ARMOR_WIDTH_RATIO_MAX>
<ARMOR_Y_DIFFERENT>10</ARMOR_Y_DIFFERENT>
<ARMOR_HEIGHT_DIFFERENT>10</ARMOR_HEIGHT_DIFFERENT>
<ARMOR_ANGLE_DIFFERENT>80</ARMOR_ANGLE_DIFFERENT>
<ARMOR_SMALL_ASPECT_MIN>11</ARMOR_SMALL_ASPECT_MIN>
<ARMOR_TYPE_TH>33</ARMOR_TYPE_TH>
<ARMOR_BIG_ASPECT_MAX>42</ARMOR_BIG_ASPECT_MAX>
</opencv_storage>
215 changes: 119 additions & 96 deletions devices/camera/mv_video_capture.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,128 +9,151 @@
*/
#include "mv_video_capture.hpp"

namespace mindvision {
namespace mindvision
{

VideoCapture::VideoCapture(const CameraParam &_camera_param) {
if (_camera_param.camera_mode == 0) {
cameraInit(_camera_param.resolution.cols,
_camera_param.resolution.rows,
_camera_param.camera_exposuretime);
VideoCapture::VideoCapture(const CameraParam &_camera_param)
{
if (_camera_param.camera_mode == 0)
{
cameraInit(_camera_param.resolution.cols,
_camera_param.resolution.rows,
_camera_param.camera_exposuretime);

iscamera0_open = true;
iscamera0_open = true;

fmt::print("[{}] Using mindvision industrial camera: {}\n", idntifier_green, _camera_param.camera_mode);
} else {
iscamera0_open = false;
}
else
{
iscamera0_open = false;

fmt::print("[{}] Not using mindvision industrial camera: {}\n", idntifier_green, _camera_param.camera_mode);
fmt::print("[{}] Not using mindvision industrial camera: {}\n", idntifier_green, _camera_param.camera_mode);
}
}
}

VideoCapture::~VideoCapture() {
if (iscamera0_open) {
CameraUnInit(hCamera);
free(g_pRgbBuffer);
VideoCapture::~VideoCapture()
{
if (iscamera0_open)
{
CameraUnInit(hCamera);
free(g_pRgbBuffer);

fmt::print("[{}] Released mindvision industrial camera: {}\n", idntifier_green, iStatus);
fmt::print("[{}] Released mindvision industrial camera: {}\n", idntifier_green, iStatus);
}
}
}

bool VideoCapture::isindustryimgInput() {
bool isindustry_camera_open = false;
bool VideoCapture::isindustryimgInput()
{
bool isindustry_camera_open = false;

if (iscamera0_open == 1) {
if (CameraGetImageBuffer(hCamera, &sFrameInfo, &pbyBuffer, 1000) == CAMERA_STATUS_SUCCESS) {
CameraImageProcess(hCamera, pbyBuffer, g_pRgbBuffer, &sFrameInfo);
if (iscamera0_open == 1)
{
if (CameraGetImageBuffer(hCamera, &sFrameInfo, &pbyBuffer, 1000) == CAMERA_STATUS_SUCCESS)
{
CameraImageProcess(hCamera, pbyBuffer, g_pRgbBuffer, &sFrameInfo);

if (iplImage) {
cvReleaseImageHeader(&iplImage);
}
if (iplImage)
{
cvReleaseImageHeader(&iplImage);
}

iplImage =
cvCreateImageHeader(cvSize(sFrameInfo.iWidth, sFrameInfo.iHeight), IPL_DEPTH_8U, channel);

iplImage =
cvCreateImageHeader(cvSize(sFrameInfo.iWidth, sFrameInfo.iHeight), IPL_DEPTH_8U, channel);
cvSetData(iplImage, g_pRgbBuffer, sFrameInfo.iWidth * channel);
}

cvSetData(iplImage, g_pRgbBuffer, sFrameInfo.iWidth * channel);
isindustry_camera_open = true;
}
else
{
isindustry_camera_open = false;
}

isindustry_camera_open = true;
} else {
isindustry_camera_open = false;
return isindustry_camera_open;
}

return isindustry_camera_open;
}
int VideoCapture::cameraInit(const int _CAMERA_RESOLUTION_COLS,
const int _CAMERA_RESOLUTION_ROWS,
const int _CAMERA_EXPOSURETIME)
{
CameraSdkInit(1);

int VideoCapture::cameraInit(const int _CAMERA_RESOLUTION_COLS,
const int _CAMERA_RESOLUTION_ROWS,
const int _CAMERA_EXPOSURETIME) {
CameraSdkInit(1);
iStatus = CameraEnumerateDevice(&tCameraEnumList, &iCameraCounts);

iStatus = CameraEnumerateDevice(&tCameraEnumList, &iCameraCounts);
if (iCameraCounts == 0)
{
fmt::print("[{}] Error, no mindvision industrial camera detected: {}\n", idntifier_red, iCameraCounts);

if (iCameraCounts == 0) {
fmt::print("[{}] Error, no mindvision industrial camera detected: {}\n", idntifier_red, iCameraCounts);
return -1;
}

return -1;
}
// 相机初始化
iStatus = CameraInit(&tCameraEnumList, -1, -1, &hCamera);

// 相机初始化
iStatus = CameraInit(&tCameraEnumList, -1, -1, &hCamera);
if (iStatus != CAMERA_STATUS_SUCCESS)
{
fmt::print("[{}] Error, Init mindvision industrial camera failed: {}\n", idntifier_red, iStatus);

if (iStatus != CAMERA_STATUS_SUCCESS) {
fmt::print("[{}] Error, Init mindvision industrial camera failed: {}\n", idntifier_red, iStatus);
return -1;
}

return -1;
}
fmt::print("[{}] Info, Init mindvision industrial camera success: {}\n", idntifier_green, iStatus);

fmt::print("[{}] Info, Init mindvision industrial camera success: {}\n", idntifier_green, iStatus);

CameraGetCapability(hCamera, &tCapability);

g_pRgbBuffer =
static_cast<unsigned char*>(
malloc(tCapability.sResolutionRange.iHeightMax *
tCapability.sResolutionRange.iWidthMax * 3));

// 设置相机分辨率
CameraGetImageResolution(hCamera, &pImageResolution);

pImageResolution.iIndex = 0xFF;
pImageResolution.iWidthFOV = _CAMERA_RESOLUTION_COLS;
pImageResolution.iHeightFOV = _CAMERA_RESOLUTION_ROWS;
pImageResolution.iWidth = _CAMERA_RESOLUTION_COLS;
pImageResolution.iHeight = _CAMERA_RESOLUTION_ROWS;
pImageResolution.iHOffsetFOV = static_cast<int>((1280 - _CAMERA_RESOLUTION_COLS) * 0.5);
pImageResolution.iVOffsetFOV = static_cast<int>((1024 - _CAMERA_RESOLUTION_ROWS) * 0.5);

CameraSetImageResolution(hCamera, &pImageResolution);

// 设置曝光时间
CameraGetAeState(hCamera, &AEstate);
CameraSetAeState(hCamera, FALSE);
CameraSetExposureTime(hCamera, _CAMERA_EXPOSURETIME);
// 设置颜色增益
CameraSetGain(hCamera, 145, 130, 105);

// 让SDK进入工作模式
CameraPlay(hCamera);
CameraReleaseImageBuffer(hCamera, pbyBuffer);

if (tCapability.sIspCapacity.bMonoSensor) {
channel = 1;
CameraSetIspOutFormat(hCamera, CAMERA_MEDIA_TYPE_MONO8);
} else {
channel = 3;
CameraSetIspOutFormat(hCamera, CAMERA_MEDIA_TYPE_BGR8);
}
CameraGetCapability(hCamera, &tCapability);

return 1;
}
g_pRgbBuffer =
static_cast<unsigned char *>(
malloc(tCapability.sResolutionRange.iHeightMax *
tCapability.sResolutionRange.iWidthMax * 3));

void VideoCapture::cameraReleasebuff() {
// After successfully calling CameraGetImageBuffer, CameraReleaseImageBuffer must be called to release the acquired buffer
// Otherwise, when CameraGetImageBuffer is called again, the program will hang and block until CameraReleaseImageBuffer is called in another thread
if (iscamera0_open) { CameraReleaseImageBuffer(hCamera, pbyBuffer); }
}
// 设置相机分辨率
CameraGetImageResolution(hCamera, &pImageResolution);

pImageResolution.iIndex = 0xFF;
pImageResolution.iWidthFOV = _CAMERA_RESOLUTION_COLS;
pImageResolution.iHeightFOV = _CAMERA_RESOLUTION_ROWS;
pImageResolution.iWidth = _CAMERA_RESOLUTION_COLS;
pImageResolution.iHeight = _CAMERA_RESOLUTION_ROWS;
pImageResolution.iHOffsetFOV = static_cast<int>((1280 - _CAMERA_RESOLUTION_COLS) * 0.5);
pImageResolution.iVOffsetFOV = static_cast<int>((1024 - _CAMERA_RESOLUTION_ROWS) * 0.5);

CameraSetImageResolution(hCamera, &pImageResolution);

// 设置曝光时间
CameraGetAeState(hCamera, &AEstate);
CameraSetAeState(hCamera, FALSE);
CameraSetExposureTime(hCamera, _CAMERA_EXPOSURETIME);
// 设置颜色增益
CameraSetGain(hCamera, 145, 130, 105);

// 让SDK进入工作模式
CameraPlay(hCamera);
CameraReleaseImageBuffer(hCamera, pbyBuffer);

if (tCapability.sIspCapacity.bMonoSensor)
{
channel = 1;
CameraSetIspOutFormat(hCamera, CAMERA_MEDIA_TYPE_MONO8);
}
else
{
channel = 3;
CameraSetIspOutFormat(hCamera, CAMERA_MEDIA_TYPE_BGR8);
}

return 1;
}

void VideoCapture::cameraReleasebuff()
{
// After successfully calling CameraGetImageBuffer, CameraReleaseImageBuffer must be called to release the acquired buffer
// Otherwise, when CameraGetImageBuffer is called again, the program will hang and block until CameraReleaseImageBuffer is called in another thread
if (iscamera0_open)
{
CameraReleaseImageBuffer(hCamera, pbyBuffer);
}
}

} // namespace mindvision
} // namespace mindvision
Loading

0 comments on commit dba3d6f

Please sign in to comment.