首先,应用Opencv打开网络相机,读取图片。
主函数代码如下:
GLuint textureID;
cv::VideoCapture vcap;
const std::string videoStreamAddress = "rtsp://192.168.1.193:554/user=admin_password=tlJwpbo6_channel=0_stream=0.sdp?real_stream";
bool FlagWetCamera = false;
bool FlagOpenCamera = false;
//是否正常打开相机标识
FlagWetCamera = vcap.open(videoStreamAddress);
打开相机后,需使用OpenGL的指令生成纹理贴图,获取贴图ID,就能调用ImGui::Image()函数显示图片。
void ImGui::Image(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0, const ImVec2& uv1, const ImVec4& tint_col, const ImVec4& border_col)
创建贴图的代码如下:
void CreateTexture1(cv::VideoCapture vcap)
{
cv::Mat image;
if (!vcap.read(image))
{
printf( "Can not load Cameras\n");
}
else
{
//设置长宽
int width = image.cols;
int height = image.rows;
int channel = image.cha